void Spinner::save(SaveFileWriteStream &f) { assert(!_isOpen); for (int i = 0; i != kSpinnerDestinations; ++i) { f.writeBool(_isDestinationSelectable[i]); } }
void Overlays::save(SaveFileWriteStream &f) { for (int i = 0; i < kOverlayVideos; ++i) { // 37 bytes per overlay Video &ov = _videos[i]; f.writeBool(ov.loaded); f.writeInt(0); // vqaPlayer pointer f.writeStringSz(ov.name, 13); f.writeSint32LE(ov.hash); if (ov.enqueuedLoopId != -1) { // When there is an enqueued video, save that loop Id instead f.writeInt(ov.enqueuedLoopId); } else { f.writeInt(ov.loopId); } f.writeBool(ov.loopForever); f.writeInt(ov.frame); } }
void Item::save(SaveFileWriteStream &f) { f.writeInt(_setId); f.writeInt(_itemId); f.writeBoundingBox(_boundingBox, false); f.writeRect(_screenRectangle); f.writeInt(_animationId); f.writeVector3(_position); f.writeInt(_facing); f.writeFloat(_angle); f.writeInt(_width); f.writeInt(_height); f.writeInt(_screenX); f.writeInt(_screenY); f.writeFloat(_depth); f.writeBool(_isTarget); f.writeBool(_isSpinning); f.writeInt(_facingChange); f.writeFloat(0.0f); // _viewAngle f.writeBool(_isVisible); f.writeBool(_isPoliceMazeEnemy); }
void Overlays::save(SaveFileWriteStream &f) { for (int i = 0; i < kOverlayVideos; ++i) { // 37 bytes per overlay Video &ov = _videos[i]; f.writeBool(ov.loaded); f.writeInt(0); // vqaPlayer pointer f.writeStringSz(ov.name, 13); f.writeSint32LE(ov.hash); f.writeInt(ov.field0); f.writeInt(ov.field1); f.writeInt(ov.field2); } }
void Obstacles::save(SaveFileWriteStream &f) { f.writeBool(_backup); f.writeInt(_count); for (int i = 0; i < _count; ++i) { Polygon &p = _polygonsBackup[i]; f.writeBool(p.isPresent); f.writeInt(p.verticeCount); f.writeFloat(p.rect.x0); f.writeFloat(p.rect.y0); f.writeFloat(p.rect.x1); f.writeFloat(p.rect.y1); for (int j = 0; j < kPolygonVertexCount; ++j) { f.writeVector2(p.vertices[j]); } for (int j = 0; j < kPolygonVertexCount; ++j) { f.writeInt(p.vertexType[j]); } } for (int i = 0; i < kVertexCount; ++i) { f.writeVector2(_vertices[i]); } f.writeInt(_verticeCount); }