|
楼主 |
发表于 2011-7-8 14:31:09
|
显示全部楼层
好吧 我表示问题解决了...
原来class里有记录单位对应哪个子组的。。。而且跟单位组中的单位顺序并不对应
class CUnitSelection
{
public:
void Flush( void )
{
CUnitSelection_Flush( this );
}
void PushUnit( CUnit* lpcUnit )
{
DWORD dwUnitId = lpcUnit->GetUnitId( );
CUnitSelection_PushUnit( this, &dwUnitId, lpcUnit->GetModelPtr( ) + 0x3C , 1 );
}
inline byte
GetUnits( void ) { return m_bUnitsInGroup; }
inline byte
GetSubgroups( void ) { return m_bSubgroupsInGroup; }
inline WORD
GetCurrentSubgroup( void ) { return m_wCurrentSubgroup; }
inline DWORD
GetUnitId( byte bIndex ) { return m_dwUnits[ bIndex ]; }
inline byte
GetUnitSubgroup( byte bIndex ) { return m_bUnitSubgroups[ bIndex ]; }
private:
/* + 0x000 */ byte m_bUnitsInGroup;
/* + 0x001 */ byte m_bSubgroupsInGroup;
/* + 0x002 */ WORD m_wCurrentSubgroup;
/* + 0x004 */ DWORD m_dwUnits[ 255 ];
/* + 0x400 */ byte m_bUnitSubgroups[ 255 ];
/* + 0x500 */ byte m_bTable1[ 2040 ]; // 8
}; |
|