From: <ec...@us...> - 2002-08-21 19:49:18
|
Update of /cvsroot/decaldev/source/DecalFilters In directory usw-pr-cvs1:/tmp/cvs-serv21335 Modified Files: SkillInfo.h SkillInfo.cpp DecalFilters.idl CharacterStats.h CharacterStats.cpp Log Message: Addition of a few sorely lacking functions: -get_BurdenUnits gets the number of burden units your character is currently carrying -get_Burden gets your burden percentage (ex: 97) -get_FreeExp has been added to ISkillInfo, which gets the amount of free xp your character received in that skill at creation. Index: SkillInfo.h =================================================================== RCS file: /cvsroot/decaldev/source/DecalFilters/SkillInfo.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** SkillInfo.h 29 Jul 2002 02:41:26 -0000 1.2 --- SkillInfo.h 21 Aug 2002 19:49:14 -0000 1.3 *************** *** 43,46 **** --- 43,47 ---- STDMETHOD(get_ShortName)(/*[out, retval]*/ BSTR *pVal); STDMETHOD(get_Name)(/*[out, retval]*/ BSTR *pVal); + STDMETHOD(get_FreeExp)(/*[out, retval]*/ long *pVal); }; Index: SkillInfo.cpp =================================================================== RCS file: /cvsroot/decaldev/source/DecalFilters/SkillInfo.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** SkillInfo.cpp 31 Jul 2002 01:38:40 -0000 1.3 --- SkillInfo.cpp 21 Aug 2002 19:49:14 -0000 1.4 *************** *** 191,192 **** --- 191,205 ---- return S_OK; } + + STDMETHODIMP cSkillInfo::get_FreeExp(long *pVal) + { + if( pVal == NULL ) + { + _ASSERT( FALSE ); + return E_POINTER; + } + + *pVal = m_pSkill->m_nFreeExp; + + return S_OK; + } \ No newline at end of file Index: DecalFilters.idl =================================================================== RCS file: /cvsroot/decaldev/source/DecalFilters/DecalFilters.idl,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** DecalFilters.idl 10 Aug 2002 20:12:06 -0000 1.25 --- DecalFilters.idl 21 Aug 2002 19:49:14 -0000 1.26 *************** *** 178,181 **** --- 178,182 ---- [propget, id(8), helpstring("property Known")] HRESULT Known([out, retval] VARIANT_BOOL *pVal); [propget, id(9), helpstring("property Increment")] HRESULT Increment([out, retval] long *pVal); + [propget, id(10), helpstring("property FreeExp")] HRESULT FreeExp([out, retval] long *pVal); }; *************** *** 274,277 **** --- 275,280 ---- [propget, id(37), helpstring("property EffectiveVital")] HRESULT EffectiveVital(enum eVitalID Index, [out, retval] long *pVal); [propget, id(38), helpstring("property Vitae")] HRESULT Vitae([out, retval] long *pVal); + [propget, id(39), helpstring("property BurdenUnits")] HRESULT BurdenUnits([out, retval] long *pVal); + [propget, id(40), helpstring("property Burden")] HRESULT Burden([out, retval] long *pVal); }; Index: CharacterStats.h =================================================================== RCS file: /cvsroot/decaldev/source/DecalFilters/CharacterStats.h,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** CharacterStats.h 10 Aug 2002 20:12:06 -0000 1.12 --- CharacterStats.h 21 Aug 2002 19:49:14 -0000 1.13 *************** *** 96,100 **** long m_nDenominator; long m_nOffset, ! m_nExp; eTrainingType m_trained; }; --- 96,101 ---- long m_nDenominator; long m_nOffset, ! m_nExp, ! m_nFreeExp; eTrainingType m_trained; }; *************** *** 132,136 **** DWORD PrimStat[6], PrimStatInitial[6]; DWORD SecStatInc[3]; ! DWORD SkillInc[40], SkillTrain[40], SkillXP[40]; private: --- 133,137 ---- DWORD PrimStat[6], PrimStatInitial[6]; DWORD SecStatInc[3]; ! DWORD SkillInc[40], SkillTrain[40], SkillXP[40], SkillFreeXP[40]; private: *************** *** 139,142 **** --- 140,145 ---- DWORD TotalBurden, TotalPyreal, TotalXP, UnassignedXP, SkillPoints, Level, Rank; + float Burden; + Location_t Location; *************** *** 234,237 **** --- 237,243 ---- STDMETHOD(get_Vitae)(/*[out, retval]*/ long *pVal); + + STDMETHOD(get_BurdenUnits)(/*[out, retval]*/ long *pVal); + STDMETHOD(get_Burden)(/*[out, retval]*/ long *pVal); }; Index: CharacterStats.cpp =================================================================== RCS file: /cvsroot/decaldev/source/DecalFilters/CharacterStats.cpp,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** CharacterStats.cpp 21 Aug 2002 18:08:14 -0000 1.25 --- CharacterStats.cpp 21 Aug 2002 19:49:14 -0000 1.26 *************** *** 408,417 **** IMessageMember* pRecord = (IMessageMember*) vMember1.pdispVal; ! _variant_t vSkillN, vSkillI, vSkillT, vSkillX; pRecord->get_Member(_variant_t ("skill"), &vSkillN); pRecord->get_Member(_variant_t ("increment"), &vSkillI); pRecord->get_Member(_variant_t ("trained"), &vSkillT); pRecord->get_Member(_variant_t ("exp"), &vSkillX); SkillXP[vSkillN.iVal] = vSkillX.lVal; SkillTrain[vSkillN.iVal] = vSkillT.lVal; --- 408,419 ---- IMessageMember* pRecord = (IMessageMember*) vMember1.pdispVal; ! _variant_t vSkillN, vSkillI, vSkillT, vSkillX, vSkillF; pRecord->get_Member(_variant_t ("skill"), &vSkillN); pRecord->get_Member(_variant_t ("increment"), &vSkillI); pRecord->get_Member(_variant_t ("trained"), &vSkillT); pRecord->get_Member(_variant_t ("exp"), &vSkillX); + pRecord->get_Member(_variant_t ("freeXP"), &vSkillF); + SkillFreeXP[vSkillN.iVal] = vSkillF.lVal; SkillXP[vSkillN.iVal] = vSkillX.lVal; SkillTrain[vSkillN.iVal] = vSkillT.lVal; *************** *** 1159,1162 **** --- 1161,1165 ---- pSkill->m_pSkill->m_nExp = SkillXP[Index]; + pSkill->m_pSkill->m_nFreeExp = SkillFreeXP[Index]; pSkill->m_pSkill->m_nOffset = SkillInc[Index]; *************** *** 1496,1499 **** --- 1499,1524 ---- *pVal = long((1.00 - Vitae) * 100); + return S_OK; + } + + HRESULT cCharacterStats::get_BurdenUnits(long *pVal) + { + if(!GotLogin) + return E_FAIL; + + *pVal = long(TotalBurden); + return S_OK; + } + + HRESULT cCharacterStats::get_Burden(long *pVal) + { + if(!GotLogin) + return E_FAIL; + + long nLegalBurden; + get_EffectiveAttribute(eAttrStrength, &nLegalBurden); + nLegalBurden *= 150; + + *pVal = long( ( float(TotalBurden) / nLegalBurden ) * 100 ); return S_OK; } |