1 #include "Debug.h"
2 #include "FileMan.h"
3 #include "LoadSaveBasicSoldierCreateStruct.h"
4 #include "LoadSaveData.h"
5 #include "Soldier_Create.h"
6 
7 
ExtractBasicSoldierCreateStructFromFile(HWFILE const f,BASIC_SOLDIERCREATE_STRUCT & b)8 void ExtractBasicSoldierCreateStructFromFile(HWFILE const f, BASIC_SOLDIERCREATE_STRUCT& b)
9 {
10 	BYTE data[52];
11 	FileRead(f, data, sizeof(data));
12 
13 	DataReader d{data};
14 	EXTR_BOOL(d, b.fDetailedPlacement)
15 	EXTR_SKIP(d, 1)
16 	EXTR_U16( d, b.usStartingGridNo)
17 	EXTR_I8(  d, b.bTeam)
18 	EXTR_I8(  d, b.bRelativeAttributeLevel)
19 	EXTR_I8(  d, b.bRelativeEquipmentLevel)
20 	EXTR_I8(  d, b.bDirection)
21 	EXTR_I8(  d, b.bOrders)
22 	EXTR_I8(  d, b.bAttitude)
23 	EXTR_I8(  d, b.bBodyType)
24 	EXTR_SKIP(d, 1)
25 	EXTR_I16A(d, b.sPatrolGrid, lengthof(b.sPatrolGrid))
26 	EXTR_I8(  d, b.bPatrolCnt)
27 	EXTR_BOOL(d, b.fOnRoof)
28 	EXTR_U8(  d, b.ubSoldierClass)
29 	EXTR_U8(  d, b.ubCivilianGroup)
30 	EXTR_BOOL(d, b.fPriorityExistance)
31 	EXTR_BOOL(d, b.fHasKeys)
32 	EXTR_SKIP(d, 14)
33 	Assert(d.getConsumed() == lengthof(data));
34 }
35 
36 
InjectBasicSoldierCreateStructIntoFile(HWFILE const f,BASIC_SOLDIERCREATE_STRUCT const & b)37 void InjectBasicSoldierCreateStructIntoFile(HWFILE const f, BASIC_SOLDIERCREATE_STRUCT const& b)
38 {
39 	BYTE  data[52];
40 	DataWriter d{data};
41 	INJ_BOOL(d, b.fDetailedPlacement)
42 	INJ_SKIP(d, 1)
43 	INJ_U16( d, b.usStartingGridNo)
44 	INJ_I8(  d, b.bTeam)
45 	INJ_I8(  d, b.bRelativeAttributeLevel)
46 	INJ_I8(  d, b.bRelativeEquipmentLevel)
47 	INJ_I8(  d, b.bDirection)
48 	INJ_I8(  d, b.bOrders)
49 	INJ_I8(  d, b.bAttitude)
50 	INJ_I8(  d, b.bBodyType)
51 	INJ_SKIP(d, 1)
52 	INJ_I16A(d, b.sPatrolGrid, lengthof(b.sPatrolGrid))
53 	INJ_I8(  d, b.bPatrolCnt)
54 	INJ_BOOL(d, b.fOnRoof)
55 	INJ_U8(  d, b.ubSoldierClass)
56 	INJ_U8(  d, b.ubCivilianGroup)
57 	INJ_BOOL(d, b.fPriorityExistance)
58 	INJ_BOOL(d, b.fHasKeys)
59 	INJ_SKIP(d, 14)
60 	Assert(d.getConsumed() == lengthof(data));
61 
62 	FileWrite(f, data, sizeof(data));
63 }
64