Esempio n. 1
0
void ScreenHeader::write(byte *addr) {
	Common::MemoryWriteStream writeS(addr, size());

	writeS.writeUint16LE(width);
	writeS.writeUint16LE(height);
	writeS.writeUint16LE(noLayers);
}
Esempio n. 2
0
void FrameHeader::write(byte *addr) {
	Common::MemoryWriteStream writeS(addr, size());

	writeS.writeUint32LE(compSize);
	writeS.writeUint16LE(width);
	writeS.writeUint16LE(height);
}
Esempio n. 3
0
void PSXFontEntry::write(byte *addr) {
	Common::MemoryWriteStream writeS(addr, size());

	writeS.writeUint16LE(offset);
	writeS.writeUint16LE(skipLines);
	writeS.writeUint16LE(charWidth);
	writeS.writeUint16LE(charHeight);
}
Esempio n. 4
0
void CdtEntry::write(byte *addr) {
	Common::MemoryWriteStream writeS(addr, size());

	writeS.writeUint16LE(x);
	writeS.writeUint16LE(y);
	writeS.writeUint32LE(frameOffset);
	writeS.writeByte(frameType);
}
Esempio n. 5
0
uint32 Sword2Engine::saveGame(uint16 slotNo, const byte *desc) {
	char description[SAVE_DESCRIPTION_LEN];
	uint32 bufferSize = findBufferSize();
	byte *saveBuffer = (byte *)malloc(bufferSize);
	ScreenInfo *screenInfo = _screen->getScreenInfo();

	memset(description, 0, sizeof(description));
	strncpy(description, (const char *)desc, SAVE_DESCRIPTION_LEN - 1);

	Common::MemoryWriteStream writeS(saveBuffer, bufferSize);

	byte *globalVars = _resman->openResource(1);
	byte *objectHub = _resman->openResource(CUR_PLAYER_ID) + ResHeader::size();

	// Script no. 7 - 'george_savedata_request' calls fnPassPlayerSaveData
	_logic->runResScript(CUR_PLAYER_ID, 7);

	writeS.writeUint32LE(0);	// Checksum
	writeS.write(description, SAVE_DESCRIPTION_LEN);
	writeS.writeUint32LE(_resman->fetchLen(1));
	writeS.writeUint32LE(screenInfo->background_layer_id);
	writeS.writeUint32LE(_logic->getRunList());
	writeS.writeUint32LE(screenInfo->feet_x);
	writeS.writeUint32LE(screenInfo->feet_y);
	writeS.writeUint32LE(_sound->getLoopingMusicId());
	writeS.write(objectHub, ObjectHub::size());
	writeS.write(_logic->_saveLogic, ObjectLogic::size());
	writeS.write(_logic->_saveGraphic, ObjectGraphic::size());
	writeS.write(_logic->_saveMega, ObjectMega::size());
	writeS.write(globalVars, _resman->fetchLen(1));

	WRITE_LE_UINT32(saveBuffer, calcChecksum(saveBuffer + 4, bufferSize - 4));

	_resman->closeResource(CUR_PLAYER_ID);
	_resman->closeResource(1);

	uint32 errorCode = saveData(slotNo, saveBuffer, bufferSize);

	free(saveBuffer);

	if (errorCode != SR_OK) {
		uint32 textId;

		switch (errorCode) {
		case SR_ERR_FILEOPEN:
			textId = TEXT_SAVE_CANT_OPEN;
			break;
		default:
			textId = TEXT_SAVE_FAILED;
			break;
		}

		_screen->displayMsg(fetchTextLine(_resman->openResource(textId / SIZE), textId & 0xffff) + 2, 0);
	}

	return errorCode;
}
Esempio n. 6
0
void ResHeader::write(byte *addr) {
	Common::MemoryWriteStream writeS(addr, size());

	writeS.writeByte(fileType);
	writeS.writeByte(compType);
	writeS.writeUint32LE(compSize);
	writeS.writeUint32LE(decompSize);
	writeS.write(name, NAME_LEN);
}
Esempio n. 7
0
void ObjectMouse::write(byte *addr) {
	Common::MemoryWriteStream writeS(addr, size());

	writeS.writeSint32LE(x1);
	writeS.writeSint32LE(y1);
	writeS.writeSint32LE(x2);
	writeS.writeSint32LE(y2);
	writeS.writeSint32LE(priority);
	writeS.writeSint32LE(pointer);
}
Esempio n. 8
0
void LayerHeader::write(byte *addr) {
	Common::MemoryWriteStream writeS(addr, size());

	writeS.writeUint16LE(x);
	writeS.writeUint16LE(y);
	writeS.writeUint16LE(width);
	writeS.writeUint16LE(height);
	writeS.writeUint32LE(maskSize);
	writeS.writeUint32LE(offset);
}
Esempio n. 9
0
void AnimHeader::write(byte *addr) {
	Common::MemoryWriteStream writeS(addr, size());

	writeS.writeByte(runTimeComp);
	writeS.writeUint16LE(noAnimFrames);
	writeS.writeUint16LE(feetStartX);
	writeS.writeUint16LE(feetStartY);
	writeS.writeByte(feetStartDir);
	writeS.writeUint16LE(feetEndX);
	writeS.writeUint16LE(feetEndY);
	writeS.writeByte(feetEndDir);
	writeS.writeUint16LE(blend);
}
Esempio n. 10
0
void MultiScreenHeader::write(byte *addr) {
	Common::MemoryWriteStream writeS(addr, size());

	writeS.writeUint32LE(palette);
	writeS.writeUint32LE(bg_parallax[0]);
	writeS.writeUint32LE(bg_parallax[1]);
	writeS.writeUint32LE(screen);
	writeS.writeUint32LE(fg_parallax[0]);
	writeS.writeUint32LE(fg_parallax[1]);
	writeS.writeUint32LE(layers);
	writeS.writeUint32LE(paletteTable);
	writeS.writeUint32LE(maskOffset);
}
Esempio n. 11
0
void PSXScreensEntry::write(byte *addr) {
	Common::MemoryWriteStream writeS(addr, size());

	writeS.writeUint16LE(bgPlxXres);
	writeS.writeUint16LE(bgPlxYres);
	writeS.writeUint32LE(bgPlxOffset);
	writeS.writeUint32LE(bgPlxSize);
	writeS.writeUint16LE(bgXres);
	writeS.writeUint16LE(bgYres);
	writeS.writeUint32LE(bgOffset);
	writeS.writeUint32LE(bgSize);
	writeS.writeUint16LE(fgPlxXres);
	writeS.writeUint16LE(fgPlxYres);
	writeS.writeUint32LE(fgPlxOffset);
	writeS.writeUint32LE(fgPlxSize);
}
Esempio n. 12
0
bool L2Game_CharacterCreate::create( const L2Game_NewCharacterTemplate *tmpl, const wchar_t *name,
		int hairStyle, int hairColor, int face, int gender )
{
	if( !tmpl ) return false;
	setPacketType( 0x0C ); // CharacterCreate
	writeS( name );
	writeD( tmpl->race );
	writeD( gender );
	writeD( tmpl->classID );
	writeD( tmpl->base_INT );
	writeD( tmpl->base_STR );
	writeD( tmpl->base_CON );
	writeD( tmpl->base_MEN );
	writeD( tmpl->base_DEX );
	writeD( tmpl->base_WIT );
	writeD( hairStyle );
	writeD( hairColor );
	writeD( face );
	return true;
}
Esempio n. 13
0
void ObjectWalkdata::write(byte *addr) {
	Common::MemoryWriteStream writeS(addr, size());

	writeS.writeUint32LE(nWalkFrames);
	writeS.writeUint32LE(usingStandingTurnFrames);
	writeS.writeUint32LE(usingWalkingTurnFrames);
	writeS.writeUint32LE(usingSlowInFrames);
	writeS.writeUint32LE(usingSlowOutFrames);

	int i;

	for (i = 0; i < ARRAYSIZE(nSlowInFrames); i++)
		writeS.writeUint32LE(nSlowInFrames[i]);

	for (i = 0; i < ARRAYSIZE(leadingLeg); i++)
		writeS.writeUint32LE(leadingLeg[i]);

	for (i = 0; i < ARRAYSIZE(dx); i++)
		writeS.writeUint32LE(dx[i]);

	for (i = 0; i < ARRAYSIZE(dy); i++)
		writeS.writeUint32LE(dy[i]);
}
Esempio n. 14
0
void Parallax::write(byte *addr) {
	Common::MemoryWriteStream writeS(addr, size());

	writeS.writeUint16LE(w);
	writeS.writeUint16LE(h);
}
Esempio n. 15
0
void TextHeader::write(byte *addr) {
	Common::MemoryWriteStream writeS(addr, size());

	writeS.writeUint32LE(noOfLines);
}