From: Luca P. <lpa...@us...> - 2006-08-24 00:42:55
|
Update of /cvsroot/planeshift/planeshift/src/server/bulkobjects In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5222/src/server/bulkobjects Modified Files: pscharacter.cpp psraceinfo.cpp psraceinfo.h Log Message: - Added new field in race_info that references an item_stats.id. Changed load of pscharacter to handle the new field and load base armor from it. This is used to have a natural armor set on each race. Index: pscharacter.cpp =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/server/bulkobjects/pscharacter.cpp,v retrieving revision 1.421 retrieving revision 1.422 diff -C2 -d -r1.421 -r1.422 *** pscharacter.cpp 22 Aug 2006 06:53:36 -0000 1.421 --- pscharacter.cpp 24 Aug 2006 00:42:52 -0000 1.422 *************** *** 94,106 **** equipment[PSCHARACTER_SLOT_RIGHTHAND].EquipmentFlags |= PSCHARACTER_EQUIPMENTFLAG_AUTOATTACK | PSCHARACTER_EQUIPMENTFLAG_ATTACKIFEMPTY; ! // Load clothes armor or TODO: natural kran armor ! psItemStats *basecloth = CacheManager::GetSingleton().GetBasicItemStatsByName("basecloths"); ! equipment[PSCHARACTER_SLOT_ARMS].default_if_empty = basecloth->InstantiateBasicItem(); ! equipment[PSCHARACTER_SLOT_BOOTS].default_if_empty = basecloth->InstantiateBasicItem(); ! equipment[PSCHARACTER_SLOT_GLOVES].default_if_empty = basecloth->InstantiateBasicItem(); ! equipment[PSCHARACTER_SLOT_HEAD].default_if_empty = basecloth->InstantiateBasicItem(); ! equipment[PSCHARACTER_SLOT_TORSO].default_if_empty = basecloth->InstantiateBasicItem(); ! equipment[PSCHARACTER_SLOT_LEGS].default_if_empty = basecloth->InstantiateBasicItem(); ! owner = NULL; doRestrictions = false; --- 94,99 ---- equipment[PSCHARACTER_SLOT_RIGHTHAND].EquipmentFlags |= PSCHARACTER_EQUIPMENTFLAG_AUTOATTACK | PSCHARACTER_EQUIPMENTFLAG_ATTACKIFEMPTY; ! // base clothes and natural armor are loaded when setting race. ! owner = NULL; doRestrictions = false; *************** *** 1739,1742 **** --- 1732,1754 ---- attributes.SetStat(PSITEMSTATS_STAT_CHARISMA,(unsigned int)rinfo->GetBaseAttribute(PSITEMSTATS_STAT_CHARISMA), false); + // Load base clothes armor or natural armor + psItemStats *armoritem; + if (rinfo->natural_armor_id==NULL || rinfo->natural_armor_id==0) + armoritem = CacheManager::GetSingleton().GetBasicItemStatsByName("basecloths"); + else + armoritem = CacheManager::GetSingleton().GetBasicItemStatsByID(rinfo->natural_armor_id); + + if (armoritem==NULL) { + Error3( "Couldn't load base armor ID: %u for char: %u!", rinfo->natural_armor_id, characterid ); + return; + } + + inventory.GetEquipmentObject(PSCHARACTER_SLOT_ARMS).default_if_empty = armoritem->InstantiateBasicItem(); + inventory.GetEquipmentObject(PSCHARACTER_SLOT_BOOTS).default_if_empty = armoritem->InstantiateBasicItem(); + inventory.GetEquipmentObject(PSCHARACTER_SLOT_GLOVES).default_if_empty = armoritem->InstantiateBasicItem(); + inventory.GetEquipmentObject(PSCHARACTER_SLOT_HEAD).default_if_empty = armoritem->InstantiateBasicItem(); + inventory.GetEquipmentObject(PSCHARACTER_SLOT_TORSO).default_if_empty = armoritem->InstantiateBasicItem(); + inventory.GetEquipmentObject(PSCHARACTER_SLOT_LEGS).default_if_empty = armoritem->InstantiateBasicItem(); + } Index: psraceinfo.cpp =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/server/bulkobjects/psraceinfo.cpp,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** psraceinfo.cpp 7 Jul 2006 20:43:40 -0000 1.23 --- psraceinfo.cpp 24 Aug 2006 00:42:52 -0000 1.24 *************** *** 71,74 **** --- 71,75 ---- size.Set(0.0f); memset(&attributes,0,sizeof(attributes)); + natural_armor_id=0; } *************** *** 150,153 **** --- 151,157 ---- SetBaseAttribute(PSITEMSTATS_STAT_CHARISMA ,row.GetUInt32("start_cha")); + // Load natural armor + natural_armor_id = row.GetUInt32("armor_id"); + return true; } Index: psraceinfo.h =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/server/bulkobjects/psraceinfo.h,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** psraceinfo.h 8 Apr 2006 04:08:13 -0000 1.13 --- psraceinfo.h 24 Aug 2006 00:42:52 -0000 1.14 *************** *** 56,59 **** --- 56,60 ---- const char *start_sector_name; int initialCP; + int natural_armor_id; float GetBaseAttribute(PSITEMSTATS_STAT attrib); |