示例#1
0
void Grid::readDataFrom(uint16 numObjects, uint16 numRooms, byte *&ptr) {
	uint16 i, j;

	_numRoomAreas = numRooms;

	_objMax  = new int16[_numRoomAreas + 1];
	_areaMax = new int16[_numRoomAreas + 1];
	_area    = new Area[_numRoomAreas + 1][MAX_AREAS_NUMBER];

	_objMax[0] = 0;
	_areaMax[0] = 0;
	memset(&_area[0], 0, sizeof(Area) * MAX_AREAS_NUMBER);
	for (i = 1; i <= _numRoomAreas; i++) {
		_objMax[i] = (int16)READ_BE_INT16(ptr); ptr += 2;
		_areaMax[i] = (int16)READ_BE_INT16(ptr); ptr += 2;
		memset(&_area[i][0], 0, sizeof(Area));
		for (j = 1; j <= _areaMax[i]; j++) {
			assert(j < MAX_AREAS_NUMBER);
			_area[i][j].readFromBE(ptr);
		}
	}

	_objectBox = new Box[numObjects + 1];
	memset(&_objectBox[0], 0, sizeof(Box));
	for (i = 1; i <= numObjects; i++) {
		_objectBox[i].readFromBE(ptr);
	}
}
示例#2
0
void Sound::loadState(uint32 ver, byte *&ptr) {
	_lastOverride = (int16)READ_BE_INT16(ptr); ptr += 2;
}