Files
@ r9791:31e4907f014d
Branch filter:
Location: cpp/openttd-patchpack/source/src/cheat.cpp - annotation
r9791:31e4907f014d
1.2 KiB
text/x-c
(svn r13933) -Codechange [YAPP]: Handle through and PBS signals correctly in the signal code. (michi_cc)
r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r9111:983de9c5a848 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r9390:aab57f0a7820 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 r8965:16f6e5e9ed36 | /* $Id$ */
/** @file cheat.cpp Handling (loading/saving/initializing) of cheats. */
#include "stdafx.h"
#include "saveload.h"
#include "cheat_type.h"
Cheats _cheats;
void InitializeCheats()
{
memset(&_cheats, 0, sizeof(Cheats));
}
static void Save_CHTS()
{
/* Cannot use lengthof because _cheats is of type Cheats, not Cheat */
byte count = sizeof(_cheats) / sizeof(Cheat);
Cheat *cht = (Cheat*) &_cheats;
Cheat *cht_last = &cht[count];
SlSetLength(count * 2);
for (; cht != cht_last; cht++) {
SlWriteByte(cht->been_used);
SlWriteByte(cht->value);
}
}
static void Load_CHTS()
{
Cheat *cht = (Cheat*)&_cheats;
size_t count = SlGetFieldLength() / 2;
for (uint i = 0; i < count; i++) {
cht[i].been_used = (SlReadByte() != 0);
cht[i].value = (SlReadByte() != 0);
}
}
bool CheatHasBeenUsed()
{
/* Cannot use lengthof because _cheats is of type Cheats, not Cheat */
const Cheat* cht = (Cheat*)&_cheats;
const Cheat* cht_last = &cht[sizeof(_cheats) / sizeof(Cheat)];
for (; cht != cht_last; cht++) {
if (cht->been_used) return true;
}
return false;
}
extern const ChunkHandler _cheat_chunk_handlers[] = {
{ 'CHTS', Save_CHTS, Load_CHTS, CH_RIFF | CH_LAST}
};
|