3 #define PLAYER_RECORD 256 25 _sopen_s(&people,
"Save\\citizens.dat", _O_RDONLY | _O_BINARY | _O_SEQUENTIAL, _SH_DENYNO, _S_IWRITE);
36 tempperson.allianceName[0] = 0;
39 _lseek(people, 4, SEEK_SET);
46 _sopen_s(&people,
"Save\\citizens.dat", _O_WRONLY | _O_BINARY | _O_SEQUENTIAL | _O_CREAT | _O_TRUNC, _SH_DENYNO, _S_IWRITE);
56 SPlayerData tempperson = SPlayerData();
58 _sopen_s(&people,
"Save\\citizens.dat", _O_RDONLY | _O_BINARY | _O_SEQUENTIAL, _SH_DENYNO, _S_IWRITE);
60 _read(people, &tempperson.age, 1);
61 _read(people, &tempperson.alignment, 1);
62 _read(people, &tempperson.allianceHeadId, 2);
63 _read(people, &tempperson.context, 1);
64 _read(people, &tempperson.eargroup, 2);
65 _read(people, &tempperson.eyecolor, 1);
66 _read(people, &tempperson.facialhair, 2);
67 _read(people, &tempperson.folder, 6);
68 _read(people, &tempperson.frame, 4);
69 _read(people, &tempperson.framegroup, 2);
70 _read(people, &tempperson.haircolor, 1);
71 _read(people, &tempperson.hairgroup, 2);
72 _read(people, &tempperson.callsign, 13);
73 _read(people, &tempperson.headgroup, 1);
74 _read(people, &tempperson.heightCm, 1);
75 _read(people, &tempperson.jawline, 2);
76 _read(people, &tempperson.membersince,
sizeof(time_t));
77 _read(people, &tempperson.nosegroup, 2);
78 _read(people, &tempperson.notes,
sizeof(WCHAR) * 32);
79 _read(people, &tempperson.characterName, 30);
80 _read(people, &tempperson.rank, 1);
81 _read(people, &tempperson.serial, 2);
82 _read(people, &tempperson.sex, 1);
83 _read(people, &tempperson.skincolor, 1);
84 _read(people, &tempperson.skintone, 1);
85 _read(people, &tempperson.stubbleFreckle, 1);
86 _read(people, &tempperson.vision, 1);
87 _read(people, &tempperson.weight, 1);
88 _read(people, &tempperson.createdate,
sizeof(time_t));
89 _read(people, &tempperson.allianceName, 30);
94 void SavePerson(
long temprecord, SPlayerData tempperson)
const 97 _sopen_s(&people,
"Save\\citizens.dat", _O_WRONLY | _O_BINARY | _O_SEQUENTIAL, _SH_DENYNO, _S_IWRITE);
99 _write(people, &tempperson.age, 1);
100 _write(people, &tempperson.alignment, 1);
101 _write(people, &tempperson.allianceHeadId, 2);
102 _write(people, &tempperson.context, 1);
103 _write(people, &tempperson.eargroup, 2);
104 _write(people, &tempperson.eyecolor, 1);
105 _write(people, &tempperson.facialhair, 2);
106 _write(people, &tempperson.folder, 6);
107 _write(people, &tempperson.frame, 4);
108 _write(people, &tempperson.framegroup, 2);
109 _write(people, &tempperson.haircolor, 1);
110 _write(people, &tempperson.hairgroup, 2);
111 _write(people, &tempperson.callsign, 13);
112 _write(people, &tempperson.headgroup, 1);
113 _write(people, &tempperson.heightCm, 1);
114 _write(people, &tempperson.jawline, 2);
115 _write(people, &tempperson.membersince,
sizeof(time_t));
116 _write(people, &tempperson.nosegroup, 2);
117 _write(people, &tempperson.notes,
sizeof(WCHAR) * 32);
118 _write(people, &tempperson.characterName, 30);
119 _write(people, &tempperson.rank, 1);
120 _write(people, &tempperson.serial, 2);
121 _write(people, &tempperson.sex, 1);
122 _write(people, &tempperson.skincolor, 1);
123 _write(people, &tempperson.skintone, 1);
124 _write(people, &tempperson.stubbleFreckle, 1);
125 _write(people, &tempperson.vision, 1);
126 _write(people, &tempperson.weight, 1);
127 _write(people, &tempperson.createdate,
sizeof(time_t));
128 _write(people, &tempperson.allianceName, 30);
134 SPlayerData tempperson =
LoadPerson(temprecord);
135 bool exists =
false, changed =
false;
136 for (
short s = 0; s < MAX_TAB; s++)
138 if (s == folder && tempperson.folder[s])
140 tempperson.folder[s] =
false;
143 if (tempperson.folder[s])
150 for (
long t = temprecord; t <
peopletot; t++)
157 _sopen_s(&people,
"Save\\citizens.dat", _O_WRONLY | _O_BINARY | _O_SEQUENTIAL, _SH_DENYNO, _S_IWRITE);
172 if (tempperson.serial == serial)
183 if (tempperson.serial == serial)
185 for (
char s = 0; s < MAX_TAB; s++)
187 if (tempperson.folder[s])
201 if (tempperson.serial == ownerId)
202 return tempperson.alignment;
212 const SPlayerData localplayer =
LoadPerson(t);
213 wcscpy_s(tempplayer.notes, 32, localplayer.notes);
214 memcpy_s(tempplayer.folder, MAX_TAB, localplayer.folder, MAX_TAB);
215 tempplayer.folder[folder] =
true;
217 return static_cast<unsigned short>(t);
220 tempplayer.notes[0] = 0;
221 for (
short s = 0; s < MAX_TAB; s++)
224 tempplayer.folder[s] =
true;
226 tempplayer.folder[s] =
false;
231 _sopen_s(&people,
"Save\\citizens.dat", _O_WRONLY | _O_BINARY | _O_SEQUENTIAL, _SH_DENYNO, _S_IWRITE);
long ResidesLocally(unsigned short serial) const
SPlayerData LoadPerson(long temprecord) const
void DeletePerson(long temprecord, char folder)
unsigned short AddUpdatePlayer(SPlayerData tempplayer, char folder)
char EarliestFolder(unsigned short serial) const
void SavePerson(long temprecord, SPlayerData tempperson) const
char GetAlignment(int ownerId) const