Merge branch 'miami' into lcs
# Conflicts: # src/control/Script5.cpp # src/entities/Entity.cpp
This commit is contained in:
@@ -8,6 +8,7 @@
|
||||
#include "Text.h"
|
||||
#include "World.h"
|
||||
#include "Timer.h"
|
||||
#include "SaveBuf.h"
|
||||
|
||||
eLevelName CTheZones::m_CurrLevel;
|
||||
int16 CTheZones::FindIndex;
|
||||
@@ -714,11 +715,11 @@ CTheZones::SaveOneZone(CZone *zone, uint8 **buffer, uint32 *length, eZoneType zo
|
||||
WriteSaveBuf(*buffer, *length, zone->zoneinfoNight);
|
||||
|
||||
int32 zoneId;
|
||||
zoneId = GetIndexForZonePointer(zone->child);
|
||||
zoneId = GetIndexForNavigationZonePointer(zone->child);
|
||||
WriteSaveBuf(*buffer, *length, zoneId);
|
||||
zoneId = GetIndexForZonePointer(zone->parent);
|
||||
zoneId = GetIndexForNavigationZonePointer(zone->parent);
|
||||
WriteSaveBuf(*buffer, *length, zoneId);
|
||||
zoneId = GetIndexForZonePointer(zone->next);
|
||||
zoneId = GetIndexForNavigationZonePointer(zone->next);
|
||||
WriteSaveBuf(*buffer, *length, zoneId);
|
||||
}
|
||||
|
||||
@@ -731,9 +732,9 @@ CTheZones::LoadAllZones(uint8 *buffer, uint32 size)
|
||||
uint32 length = 0;
|
||||
CheckSaveHeaderWithLength(buffer, length, 'Z', 'N', 'S', '\0', size - SAVE_HEADER_SIZE);
|
||||
|
||||
m_CurrLevel = ReadSaveBuf<eLevelName>(buffer, length);
|
||||
FindIndex = ReadSaveBuf<int16>(buffer, length);
|
||||
ReadSaveBuf<int16>(buffer, length);
|
||||
ReadSaveBuf(&m_CurrLevel, buffer);
|
||||
ReadSaveBuf(&FindIndex, buffer);
|
||||
SkipSaveBuf(buffer, 2);
|
||||
|
||||
for(i = 0; i < ARRAY_SIZE(NavigationZoneArray); i++)
|
||||
LoadOneZone(&NavigationZoneArray[i], &buffer, &length, ZONE_NAVIG);
|
||||
@@ -742,21 +743,21 @@ CTheZones::LoadAllZones(uint8 *buffer, uint32 size)
|
||||
LoadOneZone(&InfoZoneArray[i], &buffer, &length, ZONE_INFO);
|
||||
|
||||
for(i = 0; i < ARRAY_SIZE(ZoneInfoArray); i++)
|
||||
ZoneInfoArray[i] = ReadSaveBuf<CZoneInfo>(buffer, length);
|
||||
ReadSaveBuf(&ZoneInfoArray[i], buffer);
|
||||
|
||||
TotalNumberOfNavigationZones = ReadSaveBuf<int16>(buffer, length);
|
||||
TotalNumberOfInfoZones = ReadSaveBuf<int16>(buffer, length);
|
||||
TotalNumberOfZoneInfos = ReadSaveBuf<int16>(buffer, length);
|
||||
ReadSaveBuf<int16>(buffer, length);
|
||||
ReadSaveBuf(&TotalNumberOfNavigationZones, buffer);
|
||||
ReadSaveBuf(&TotalNumberOfInfoZones, buffer);
|
||||
ReadSaveBuf(&TotalNumberOfZoneInfos, buffer);
|
||||
SkipSaveBuf(buffer, 2);
|
||||
|
||||
for(i = 0; i < ARRAY_SIZE(MapZoneArray); i++)
|
||||
LoadOneZone(&MapZoneArray[i], &buffer, &length, ZONE_MAPZONE);
|
||||
|
||||
for(i = 0; i < ARRAY_SIZE(AudioZoneArray); i++)
|
||||
AudioZoneArray[i] = ReadSaveBuf<int16>(buffer, length);
|
||||
ReadSaveBuf(&AudioZoneArray[i], buffer);
|
||||
|
||||
TotalNumberOfMapZones = ReadSaveBuf<uint16>(buffer, length);
|
||||
NumberOfAudioZones = ReadSaveBuf<uint16>(buffer, length);
|
||||
ReadSaveBuf(&TotalNumberOfMapZones, buffer);
|
||||
ReadSaveBuf(&NumberOfAudioZones, buffer);
|
||||
|
||||
VALIDATESAVEBUF(size)
|
||||
}
|
||||
@@ -764,26 +765,36 @@ CTheZones::LoadAllZones(uint8 *buffer, uint32 size)
|
||||
void
|
||||
CTheZones::LoadOneZone(CZone *zone, uint8 **buffer, uint32 *length, eZoneType zoneType)
|
||||
{
|
||||
*(uint32*)&zone->name[0] = ReadSaveBuf<uint32>(*buffer, *length);
|
||||
*(uint32*)&zone->name[4] = ReadSaveBuf<uint32>(*buffer, *length);
|
||||
#ifdef THIS_IS_STUPID
|
||||
uint32 part1, part2;
|
||||
ReadSaveBuf(&part1, *buffer, *length);
|
||||
ReadSaveBuf(&part2, *buffer, *length);
|
||||
|
||||
zone->minx = ReadSaveBuf<float>(*buffer, *length);
|
||||
zone->miny = ReadSaveBuf<float>(*buffer, *length);
|
||||
zone->minz = ReadSaveBuf<float>(*buffer, *length);
|
||||
zone->maxx = ReadSaveBuf<float>(*buffer, *length);
|
||||
zone->maxy = ReadSaveBuf<float>(*buffer, *length);
|
||||
zone->maxz = ReadSaveBuf<float>(*buffer, *length);
|
||||
*(uint64 *)&zone->name[0] = (uint64)part2;
|
||||
*(uint64 *)&zone->name[0] <<= 32;
|
||||
*(uint64 *)&zone->name[0] |= (uint64)part1;
|
||||
#else
|
||||
for(int i = 0; i < sizeof(zone->name); i++)
|
||||
ReadSaveBuf(&zone->name[i], *buffer, *length);
|
||||
#endif
|
||||
|
||||
zone->type = ReadSaveBuf<eZoneType>(*buffer, *length);
|
||||
zone->level = ReadSaveBuf<eLevelName>(*buffer, *length);
|
||||
zone->zoneinfoDay = ReadSaveBuf<int16>(*buffer, *length);
|
||||
zone->zoneinfoNight = ReadSaveBuf<int16>(*buffer, *length);
|
||||
ReadSaveBuf(&zone->minx, *buffer, *length);
|
||||
ReadSaveBuf(&zone->miny, *buffer, *length);
|
||||
ReadSaveBuf(&zone->minz, *buffer, *length);
|
||||
ReadSaveBuf(&zone->maxx, *buffer, *length);
|
||||
ReadSaveBuf(&zone->maxy, *buffer, *length);
|
||||
ReadSaveBuf(&zone->maxz, *buffer, *length);
|
||||
|
||||
ReadSaveBuf(&zone->type, *buffer, *length);
|
||||
ReadSaveBuf(&zone->level, *buffer, *length);
|
||||
ReadSaveBuf(&zone->zoneinfoDay, *buffer, *length);
|
||||
ReadSaveBuf(&zone->zoneinfoNight, *buffer, *length);
|
||||
|
||||
int32 zoneId;
|
||||
zoneId = ReadSaveBuf<int32>(*buffer, *length);
|
||||
zone->child = GetPointerForZoneIndex(zoneId);
|
||||
zoneId = ReadSaveBuf<int32>(*buffer, *length);
|
||||
zone->parent = GetPointerForZoneIndex(zoneId);
|
||||
zoneId = ReadSaveBuf<int32>(*buffer, *length);
|
||||
zone->next = GetPointerForZoneIndex(zoneId);
|
||||
ReadSaveBuf(&zoneId, *buffer, *length);
|
||||
zone->child = GetPointerForNavigationZoneIndex(zoneId);
|
||||
ReadSaveBuf(&zoneId, *buffer, *length);
|
||||
zone->parent = GetPointerForNavigationZoneIndex(zoneId);
|
||||
ReadSaveBuf(&zoneId, *buffer, *length);
|
||||
zone->next = GetPointerForNavigationZoneIndex(zoneId);
|
||||
}
|
||||
Reference in New Issue
Block a user