This graph shows which files directly or indirectly include this file:

Go to the source code of this file.
Defines | |
| #define | DATPATH "" |
| #define | GET_UNSET(flag1, flag2) (~(flag1)&((flag1)|(flag2))) |
| #define | MAGIC_NUM 52571214 |
| #define | MAX_PERM_BLOCK 131072 |
Functions | |
| void | assign_area_vnum (int vnum) |
| void | convert_mob (MOB_INDEX_DATA *mob) |
| void | convert_mobile (MOB_INDEX_DATA *pMobIndex) |
| void | convert_obj (OBJ_INDEX_DATA *obj) |
| void | convert_object (OBJ_INDEX_DATA *pObjIndex) |
| void | convert_objects (void) |
| char * | strspace_alloc () |
| void | strspace_size_increment () |
Variables | |
| AREA_DATA * | area_first |
| bool | fBootDb |
| MOB_INDEX_DATA * | mob_index_hash [MAX_KEY_HASH] |
| int | nAllocString |
| int | newmobs |
| int | newobjs |
| OBJ_INDEX_DATA * | obj_index_hash [MAX_KEY_HASH] |
| int | sAllocString |
| int | social_count |
| unsigned | strspace_size |
| int | top_affect |
| int | top_ed |
| int | top_mob_index |
| int | top_obj_index |
|
|
Definition at line 40 of file db.h. Referenced by strspace_size_read(), and strspace_size_set(). |
|
|
|
|
|
Definition at line 61 of file db.h. Referenced by alloc_mem(), and free_mem(). |
|
|
Definition at line 55 of file db.h. Referenced by alloc_perm(), and do_memory_heap(). |
|
|
Definition at line 646 of file db.c. References area_last, area_data::max_vnum, area_data::min_vnum, and URANGE. Referenced by load_mobiles(), load_objects(), load_old_mob(), load_old_obj(), and load_rooms(). 00647 {
00648 if (area_last->min_vnum == 0 || area_last->max_vnum == 0)
00649 area_last->min_vnum = area_last->max_vnum = vnum;
00650 if (vnum != URANGE (area_last->min_vnum, vnum, area_last->max_vnum))
00651 {
00652 if (vnum < area_last->min_vnum)
00653 area_last->min_vnum = vnum;
00654 else
00655 area_last->max_vnum = vnum;
00656 }
00657 return;
00658 }
|
|
|
|
|
|
Definition at line 904 of file db2.c. References mob_index_data::ac, mob_index_data::act, ACT_WARRIOR, mob_index_data::dam_type, mob_index_data::damage, DICE_BONUS, DICE_NUMBER, DICE_TYPE, mob_index_data::hit, interpolate(), mob_index_data::level, mob_index_data::mana, mob_index_data::material, mob_index_data::new_format, newmobs, number_range(), mob_index_data::size, SIZE_MEDIUM, str_dup(), TRUE, UMAX, UMIN, and mob_index_data::wealth. Referenced by load_old_mob(). 00905 {
00906 int i;
00907 int type, number, bonus;
00908 int level;
00909
00910 if (!pMobIndex || pMobIndex->new_format)
00911 return;
00912
00913 level = pMobIndex->level;
00914
00915 pMobIndex->act |= ACT_WARRIOR;
00916
00917 /*
00918 * Calculate hit dice. Gives close to the hitpoints
00919 * of old format mobs created with create_mobile() (db.c)
00920 * A high number of dice makes for less variance in mobiles
00921 * hitpoints.
00922 * (might be a good idea to reduce the max number of dice)
00923 *
00924 * The conversion below gives:
00925
00926 level: dice min max diff mean
00927 1: 1d2+6 7( 7) 8( 8) 1( 1) 8( 8)
00928 2: 1d3+15 16( 15) 18( 18) 2( 3) 17( 17)
00929 3: 1d6+24 25( 24) 30( 30) 5( 6) 27( 27)
00930 5: 1d17+42 43( 42) 59( 59) 16( 17) 51( 51)
00931 10: 3d22+96 99( 95) 162( 162) 63( 67) 131( )
00932 15: 5d30+161 166(159) 311( 311) 145( 150) 239( )
00933 30: 10d61+416 426(419) 1026(1026) 600( 607) 726( )
00934 50: 10d169+920 930(923) 2610(2610) 1680(1688) 1770( )
00935
00936 The values in parenthesis give the values generated in create_mobile.
00937 Diff = max - min. Mean is the arithmetic mean.
00938 (hmm.. must be some roundoff error in my calculations.. smurfette got
00939 1d6+23 hp at level 3 ? -- anyway.. the values above should be
00940 approximately right..)
00941 */
00942 type = level * level * 27 / 40;
00943 number = UMIN (type / 40 + 1, 10); /* how do they get 11 ??? */
00944 type = UMAX (2, type / number);
00945 bonus = UMAX (0, level * (8 + level) * .9 - number * type);
00946
00947 pMobIndex->hit[DICE_NUMBER] = number;
00948 pMobIndex->hit[DICE_TYPE] = type;
00949 pMobIndex->hit[DICE_BONUS] = bonus;
00950
00951 pMobIndex->mana[DICE_NUMBER] = level;
00952 pMobIndex->mana[DICE_TYPE] = 10;
00953 pMobIndex->mana[DICE_BONUS] = 100;
00954
00955 /*
00956 * Calculate dam dice. Gives close to the damage
00957 * of old format mobs in damage() (fight.c)
00958 */
00959 type = level * 7 / 4;
00960 number = UMIN (type / 8 + 1, 5);
00961 type = UMAX (2, type / number);
00962 bonus = UMAX (0, level * 9 / 4 - number * type);
00963
00964 pMobIndex->damage[DICE_NUMBER] = number;
00965 pMobIndex->damage[DICE_TYPE] = type;
00966 pMobIndex->damage[DICE_BONUS] = bonus;
00967
00968 switch (number_range (1, 3))
00969 {
00970 case (1):
00971 pMobIndex->dam_type = 3;
00972 break; /* slash */
00973 case (2):
00974 pMobIndex->dam_type = 7;
00975 break; /* pound */
00976 case (3):
00977 pMobIndex->dam_type = 11;
00978 break; /* pierce */
00979 }
00980
00981 for (i = 0; i < 3; i++)
00982 pMobIndex->ac[i] = interpolate (level, 100, -100);
00983 pMobIndex->ac[3] = interpolate (level, 100, 0); /* exotic */
00984
00985 pMobIndex->wealth /= 100;
00986 pMobIndex->size = SIZE_MEDIUM;
00987 pMobIndex->material = str_dup ("none");
00988
00989 pMobIndex->new_format = TRUE;
00990 ++newmobs;
00991
00992 return;
00993 }
|
Here is the call graph for this function:

|
|
|
|
|
Definition at line 798 of file db2.c. References bug(), ITEM_ARMOR, ITEM_BOAT, ITEM_CLOTHING, ITEM_CONTAINER, ITEM_CORPSE_NPC, ITEM_CORPSE_PC, ITEM_DRINK_CON, ITEM_FOOD, ITEM_FOUNTAIN, ITEM_FURNITURE, ITEM_KEY, ITEM_LIGHT, ITEM_MAP, ITEM_MONEY, ITEM_PILL, ITEM_POTION, ITEM_SCROLL, ITEM_STAFF, ITEM_TRASH, ITEM_TREASURE, ITEM_WAND, ITEM_WEAPON, mob_index_data::level, mob_index_data::new_format, newobjs, TRUE, UMAX, and UMIN. Referenced by convert_objects(). 00799 {
00800 int level;
00801 int number, type; /* for dice-conversion */
00802
00803 if (!pObjIndex || pObjIndex->new_format)
00804 return;
00805
00806 level = pObjIndex->level;
00807
00808 pObjIndex->level = UMAX (0, pObjIndex->level); /* just to be sure */
00809 pObjIndex->cost = 10 * level;
00810
00811 switch (pObjIndex->item_type)
00812 {
00813 default:
00814 bug ("Obj_convert: vnum %d bad type.", pObjIndex->item_type);
00815 break;
00816
00817 case ITEM_LIGHT:
00818 case ITEM_TREASURE:
00819 case ITEM_FURNITURE:
00820 case ITEM_TRASH:
00821 case ITEM_CONTAINER:
00822 case ITEM_DRINK_CON:
00823 case ITEM_KEY:
00824 case ITEM_FOOD:
00825 case ITEM_BOAT:
00826 case ITEM_CORPSE_NPC:
00827 case ITEM_CORPSE_PC:
00828 case ITEM_FOUNTAIN:
00829 case ITEM_MAP:
00830 case ITEM_CLOTHING:
00831 case ITEM_SCROLL:
00832 break;
00833
00834 case ITEM_WAND:
00835 case ITEM_STAFF:
00836 pObjIndex->value[2] = pObjIndex->value[1];
00837 break;
00838
00839 case ITEM_WEAPON:
00840
00841 /*
00842 * The conversion below is based on the values generated
00843 * in one_hit() (fight.c). Since I don't want a lvl 50
00844 * weapon to do 15d3 damage, the min value will be below
00845 * the one in one_hit, and to make up for it, I've made
00846 * the max value higher.
00847 * (I don't want 15d2 because this will hardly ever roll
00848 * 15 or 30, it will only roll damage close to 23.
00849 * I can't do 4d8+11, because one_hit there is no dice-
00850 * bounus value to set...)
00851 *
00852 * The conversion below gives:
00853
00854 level: dice min max mean
00855 1: 1d8 1( 2) 8( 7) 5( 5)
00856 2: 2d5 2( 3) 10( 8) 6( 6)
00857 3: 2d5 2( 3) 10( 8) 6( 6)
00858 5: 2d6 2( 3) 12(10) 7( 7)
00859 10: 4d5 4( 5) 20(14) 12(10)
00860 20: 5d5 5( 7) 25(21) 15(14)
00861 30: 5d7 5(10) 35(29) 20(20)
00862 50: 5d11 5(15) 55(44) 30(30)
00863
00864 */
00865
00866 number = UMIN (level / 4 + 1, 5);
00867 type = (level + 7) / number;
00868
00869 pObjIndex->value[1] = number;
00870 pObjIndex->value[2] = type;
00871 break;
00872
00873 case ITEM_ARMOR:
00874 pObjIndex->value[0] = level / 5 + 3;
00875 pObjIndex->value[1] = pObjIndex->value[0];
00876 pObjIndex->value[2] = pObjIndex->value[0];
00877 break;
00878
00879 case ITEM_POTION:
00880 case ITEM_PILL:
00881 break;
00882
00883 case ITEM_MONEY:
00884 pObjIndex->value[0] = pObjIndex->cost;
00885 break;
00886 }
00887
00888 pObjIndex->new_format = TRUE;
00889 ++newobjs;
00890
00891 return;
00892 }
|
Here is the call graph for this function:

|
|
Definition at line 647 of file db2.c. References area_first, reset_data::arg1, reset_data::arg3, bug(), reset_data::command, convert_object(), get_mob_index(), get_obj_index(), get_room_index(), ITEM_ARMOR, ITEM_PILL, ITEM_POTION, ITEM_SCROLL, ITEM_STAFF, ITEM_TREASURE, obj_index_data::item_type, ITEM_WAND, ITEM_WEAPON, obj_index_data::level, mob_index_data::level, area_data::min_vnum, obj_index_data::new_format, newobjs, area_data::next, reset_data::next, mob_index_data::pShop, room_index_data::reset_first, top_obj_index, UMAX, and UMIN. Referenced by boot_db(). 00648 {
00649 int vnum;
00650 AREA_DATA *pArea;
00651 RESET_DATA *pReset;
00652 MOB_INDEX_DATA *pMob = NULL;
00653 OBJ_INDEX_DATA *pObj;
00654 ROOM_INDEX_DATA *pRoom;
00655
00656 if (newobjs == top_obj_index)
00657 return; /* all objects in new format */
00658
00659 for (pArea = area_first; pArea; pArea = pArea->next)
00660 {
00661 for (vnum = pArea->min_vnum; vnum <= pArea->max_vnum; vnum++)
00662 {
00663 if (!(pRoom = get_room_index (vnum)))
00664 continue;
00665
00666 for (pReset = pRoom->reset_first; pReset; pReset = pReset->next)
00667 {
00668 switch (pReset->command)
00669 {
00670 case 'M':
00671 if (!(pMob = get_mob_index (pReset->arg1)))
00672 bug ("Convert_objects: 'M': bad vnum %d.",
00673 pReset->arg1);
00674 break;
00675
00676 case 'O':
00677 if (!(pObj = get_obj_index (pReset->arg1)))
00678 {
00679 bug ("Convert_objects: 'O': bad vnum %d.",
00680 pReset->arg1);
00681 break;
00682 }
00683
00684 if (pObj->new_format)
00685 continue;
00686
00687 if (!pMob)
00688 {
00689 bug ("Convert_objects: 'O': No mob reset yet.",
00690 0);
00691 break;
00692 }
00693
00694 pObj->level = pObj->level < 1 ? pMob->level - 2
00695 : UMIN (pObj->level, pMob->level - 2);
00696 break;
00697
00698 case 'P':
00699 {
00700 OBJ_INDEX_DATA *pObj, *pObjTo;
00701
00702 if (!(pObj = get_obj_index (pReset->arg1)))
00703 {
00704 bug ("Convert_objects: 'P': bad vnum %d.",
00705 pReset->arg1);
00706 break;
00707 }
00708
00709 if (pObj->new_format)
00710 continue;
00711
00712 if (!(pObjTo = get_obj_index (pReset->arg3)))
00713 {
00714 bug ("Convert_objects: 'P': bad vnum %d.",
00715 pReset->arg3);
00716 break;
00717 }
00718
00719 pObj->level = pObj->level < 1 ? pObjTo->level
00720 : UMIN (pObj->level, pObjTo->level);
00721 }
00722 break;
00723
00724 case 'G':
00725 case 'E':
00726 if (!(pObj = get_obj_index (pReset->arg1)))
00727 {
00728 bug ("Convert_objects: 'E' or 'G': bad vnum %d.",
00729 pReset->arg1);
00730 break;
00731 }
00732
00733 if (!pMob)
00734 {
00735 bug
00736 ("Convert_objects: 'E' or 'G': null mob for vnum %d.",
00737 pReset->arg1);
00738 break;
00739 }
00740
00741 if (pObj->new_format)
00742 continue;
00743
00744 if (pMob->pShop)
00745 {
00746 switch (pObj->item_type)
00747 {
00748 default:
00749 pObj->level = UMAX (0, pObj->level);
00750 break;
00751 case ITEM_PILL:
00752 case ITEM_POTION:
00753 pObj->level = UMAX (5, pObj->level);
00754 break;
00755 case ITEM_SCROLL:
00756 case ITEM_ARMOR:
00757 case ITEM_WEAPON:
00758 pObj->level = UMAX (10, pObj->level);
00759 break;
00760 case ITEM_WAND:
00761 case ITEM_TREASURE:
00762 pObj->level = UMAX (15, pObj->level);
00763 break;
00764 case ITEM_STAFF:
00765 pObj->level = UMAX (20, pObj->level);
00766 break;
00767 }
00768 }
00769 else
00770 pObj->level = pObj->level < 1 ? pMob->level
00771 : UMIN (pObj->level, pMob->level);
00772 break;
00773 } /* switch ( pReset->command ) */
00774 }
00775 }
00776 }
00777
00778 /* do the conversion: */
00779
00780 for (pArea = area_first; pArea; pArea = pArea->next)
00781 for (vnum = pArea->min_vnum; vnum <= pArea->max_vnum; vnum++)
00782 if ((pObj = get_obj_index (vnum)))
00783 if (!pObj->new_format)
00784 convert_object (pObj);
00785
00786 return;
00787 }
|
Here is the call graph for this function:

|
|
Definition at line 233 of file mkwSys.c. References boot_fail(), logf(), string_space, STRSPACE_DEFAULT, strspace_size, strspace_size_default(), and strspace_size_read(). Referenced by boot_db(). 00234 {
00235 strspace_size_read();
00236 if ( ( string_space = calloc( 1, strspace_size * 1024 ) ) == NULL )
00237 {
00238 logf( "mkwSys.c: Unable to allocate %d kB string space from system.", strspace_size );
00239 if( strspace_size > STRSPACE_DEFAULT )
00240 strspace_size_default();
00241 else
00242 logf( "Increase your system's virtual memory size.", strspace_size );
00243 boot_fail( "mkwSys.c" );
00244 }
00245 return string_space;
00246 }
|
Here is the call graph for this function:

|
|
Definition at line 256 of file mkwSys.c. References boot_fail(), logf(), STRSPACE_INCREMENT, strspace_size, and strspace_size_set(). Referenced by fread_string(), and fread_string_eol(). 00257 {
00258 logf( "mkwSys.c: String space size of %d kB did not suffice.", strspace_size );
00259 strspace_size_set( strspace_size + STRSPACE_INCREMENT );
00260 logf( "mkwSys.c: Incrementing string space size to %d kB and rebooting.", strspace_size );
00261 boot_fail( "mkwSys.c" );
00262 }
|
Here is the call graph for this function:

|
|
|
|
|
Definition at line 231 of file db.c. Referenced by boot_db(), fread_string(), fread_string_eol(), get_mob_index(), get_obj_index(), get_room_index(), load_mobiles(), load_mobprogs(), load_objects(), load_old_mob(), load_old_obj(), load_rooms(), and slot_lookup(). |
|
|
|
|
|
Definition at line 221 of file db.c. Referenced by do_memory_heap(), fread_string(), fread_string_eol(), and interpret(). |
|
|
Definition at line 203 of file db.c. Referenced by convert_mobile(), do_memory_formats(), and load_mobiles(). |
|
|
Definition at line 204 of file db.c. Referenced by convert_object(), convert_objects(), do_memory_formats(), and load_objects(). |
|
|
|
|
|
Definition at line 222 of file db.c. Referenced by do_memory_heap(), fread_string(), and fread_string_eol(). |
|
|
Definition at line 49 of file db.h. Referenced by do_memory_perms(). |
|
|
Definition at line 216 of file mkwSys.c. Referenced by do_memory_heap(), fread_string(), fread_string_eol(), strspace_alloc(), strspace_size_default(), strspace_size_increment(), and strspace_size_read(). |
|
|
|
|
|
|
|
|
|
|
|
|
1.4.0