|
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;
}
|