diff options
Diffstat (limited to 'reference')
| -rw-r--r-- | reference/enums.hh | 10 | ||||
| -rw-r--r-- | reference/game.c | 735 |
2 files changed, 0 insertions, 745 deletions
diff --git a/reference/enums.hh b/reference/enums.hh deleted file mode 100644 index 47d5196..0000000 --- a/reference/enums.hh +++ /dev/null @@ -1,10 +0,0 @@ -enum CHANNEL: int { - GUILD_CHANNEL=0, - GAMEMASTER_CHANNEL=1, - TUTOR_CHANNEL=2, - REQUEST_QUEUE=3, - GAME_CHANNEL=4, - TRADE_CHANNEL=5, - REALLIFE_CHANNEL=6, - HELP_CHANNEL=7 -}; diff --git a/reference/game.c b/reference/game.c index 955fb2a..db75c28 100644 --- a/reference/game.c +++ b/reference/game.c @@ -1,738 +1,3 @@ -// DBFUNCS.CC -> PLAYERLOADER.CC ?
-//==============================================================================
-
-// WARNING: Unknown calling convention -- yet parameter storage is locked
-
-void PlayerDataPath(void)
-
-{
- uint in_stack_00000004;
- char *in_stack_0000000c;
-
- sprintf(in_stack_0000000c,"%s/%02ld/%ld.%s",USERPATH,in_stack_00000004 % 100);
- return;
-}
-
-
-
-bool PlayerDataExists(ulong CharacterID)
-
-{
- bool bVar1;
- char local_100c [4];
- char FileName [4096];
-
- sprintf(local_100c,"%s/%02ld/%ld.%s",USERPATH,CharacterID % 100,CharacterID,&DAT_080f6560);
- bVar1 = FileExists(local_100c);
- return bVar1;
-}
-
-
-
-// WARNING: Removing unreachable block (ram,0x0806d081)
-// WARNING: Removing unreachable block (ram,0x0806d0da)
-// WARNING: Removing unreachable block (ram,0x0806d08b)
-// WARNING: Removing unreachable block (ram,0x0806d095)
-// WARNING: Removing unreachable block (ram,0x0806d0c7)
-// WARNING: Removing unreachable block (ram,0x0806d0a0)
-
-bool LoadPlayerData(TPlayerData *Slot)
-
-{
- bool bVar1;
- char cVar2;
- int SkillNr;
- int iVar3;
- uint uVar4;
- int iVar5;
- uchar *puVar6;
- anon_union_4_2_730cd3ca_for_TOutfit_2 *paVar7;
- int DepotNr;
- int SkillNr_2;
- int *piVar8;
- char *pcVar9;
- undefined1 uVar10;
- char *pcVar11;
- undefined1 auStack_500c [3];
- bool FileOk;
- TReadScriptFile Script;
- undefined1 local_102c [4];
- TDynamicWriteBuffer HelpBuffer;
- char FileName [4096];
-
- if (Slot == (TPlayerData *)0x0) {
- pcVar11 = "LoadPlayerData: Slot ist NULL.\n";
- }
- else {
- uVar4 = Slot->CharacterID;
- if (uVar4 != 0) {
- piVar8 = &HelpBuffer.super_TWriteBuffer.Position;
- pcVar11 = USERPATH;
- sprintf((char *)piVar8,"%s/%02ld/%ld.%s",USERPATH,uVar4 % 100,uVar4,&DAT_080f6560);
- bVar1 = FileExists((char *)piVar8);
- if (!bVar1) {
- Slot->Race = 1;
- iVar3 = 0;
- Slot->Profession = 0;
- (Slot->OriginalOutfit).OutfitID = 0;
- (Slot->OriginalOutfit).field_1 = (anon_union_4_2_730cd3ca_for_TOutfit_2)0x0;
- (Slot->CurrentOutfit).OutfitID = 0;
- (Slot->CurrentOutfit).field_1 = (anon_union_4_2_730cd3ca_for_TOutfit_2)0x0;
- Slot->LastLoginTime = 0;
- Slot->LastLogoutTime = 0;
- Slot->startx = 0;
- Slot->starty = 0;
- Slot->startz = 0;
- Slot->posx = 0;
- Slot->posy = 0;
- Slot->posz = 0;
- Slot->PlayerkillerEnd = 0;
- do {
- Slot->Minimum[iVar3] = -0x80000000;
- iVar3 = iVar3 + 1;
- } while (iVar3 < 0x19);
- puVar6 = Slot->SpellList;
- for (iVar3 = 0x40; iVar3 != 0; iVar3 = iVar3 + -1) {
- puVar6[0] = '\0';
- puVar6[1] = '\0';
- puVar6[2] = '\0';
- puVar6[3] = '\0';
- puVar6 = puVar6 + 4;
- }
- uVar4 = 2000;
- piVar8 = Slot->QuestValues;
- if (((uint)piVar8 & 4) != 0) {
- piVar8 = Slot->QuestValues + 1;
- uVar4 = 0x7cc;
- Slot->QuestValues[0] = 0;
- }
- for (uVar4 = uVar4 >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {
- *piVar8 = 0;
- piVar8 = piVar8 + 1;
- }
- Slot->MurderTimestamps[0] = 0;
- Slot->MurderTimestamps[1] = 0;
- Slot->MurderTimestamps[2] = 0;
- Slot->MurderTimestamps[3] = 0;
- Slot->MurderTimestamps[4] = 0;
- Slot->MurderTimestamps[5] = 0;
- Slot->MurderTimestamps[6] = 0;
- Slot->MurderTimestamps[8] = 0;
- Slot->MurderTimestamps[9] = 0;
- Slot->MurderTimestamps[10] = 0;
- Slot->MurderTimestamps[0xb] = 0;
- Slot->MurderTimestamps[0xc] = 0;
- Slot->MurderTimestamps[7] = 0;
- Slot->MurderTimestamps[0xd] = 0;
- Slot->MurderTimestamps[0xe] = 0;
- Slot->MurderTimestamps[0xf] = 0;
- Slot->MurderTimestamps[0x10] = 0;
- Slot->InventorySize = 0;
- iVar3 = 0;
- Slot->MurderTimestamps[0x11] = 0;
- Slot->MurderTimestamps[0x12] = 0;
- Slot->MurderTimestamps[0x13] = 0;
- Slot->Inventory = (uchar *)0x0;
- do {
- Slot->Depot[iVar3] = (uchar *)0x0;
- Slot->DepotSize[iVar3] = 0;
- iVar3 = iVar3 + 1;
- } while (iVar3 < 9);
- return true;
- }
- TDynamicWriteBuffer::TDynamicWriteBuffer((TDynamicWriteBuffer *)local_102c,0x4000);
- // try { // try from 0806c499 to 0806c49d has its CatchHandler @ 0806d1cf
- TReadScriptFile::TReadScriptFile((TReadScriptFile *)auStack_500c);
- // try { // try from 0806c4ab to 0806c5b3 has its CatchHandler @ 0806d1c6
- TReadScriptFile::open((TReadScriptFile *)auStack_500c,(char *)piVar8,(int)pcVar11);
- TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c);
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'=');
- TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c);
- TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c);
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'=');
- pcVar11 = TReadScriptFile::readString((TReadScriptFile *)auStack_500c);
- strcpy(Slot->Name,pcVar11);
- TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c);
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'=');
- iVar3 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c);
- Slot->Race = iVar3;
- TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c);
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'=');
- iVar3 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c);
- Slot->Profession = iVar3;
- TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c);
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'=');
- // try { // try from 0806c5c8 to 0806c626 has its CatchHandler @ 0806d12c
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'(');
- iVar3 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c);
- (Slot->OriginalOutfit).OutfitID = iVar3;
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,',');
- if ((Slot->OriginalOutfit).OutfitID == 0) {
- iVar3 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c);
- (Slot->OriginalOutfit).field_1.ObjectType = (ushort)iVar3;
- }
- else {
- // try { // try from 0806d10d to 0806d111 has its CatchHandler @ 0806d12c
- paVar7 = (anon_union_4_2_730cd3ca_for_TOutfit_2 *)
- TReadScriptFile::readBytesequence((TReadScriptFile *)auStack_500c);
- (Slot->OriginalOutfit).field_1 = *paVar7;
- }
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,')');
- // try { // try from 0806c630 to 0806c64a has its CatchHandler @ 0806d1c6
- TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c);
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'=');
- // try { // try from 0806c65f to 0806c6bd has its CatchHandler @ 0806d12c
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'(');
- iVar3 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c);
- (Slot->CurrentOutfit).OutfitID = iVar3;
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,',');
- if ((Slot->CurrentOutfit).OutfitID == 0) {
- iVar3 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c);
- (Slot->CurrentOutfit).field_1.ObjectType = (ushort)iVar3;
- }
- else {
- // try { // try from 0806d0f5 to 0806d0f9 has its CatchHandler @ 0806d12c
- paVar7 = (anon_union_4_2_730cd3ca_for_TOutfit_2 *)
- TReadScriptFile::readBytesequence((TReadScriptFile *)auStack_500c);
- (Slot->CurrentOutfit).field_1 = *paVar7;
- }
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,')');
- // try { // try from 0806c6c7 to 0806d062 has its CatchHandler @ 0806d1c6
- TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c);
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'=');
- iVar3 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c);
- Slot->LastLoginTime = iVar3;
- TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c);
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'=');
- iVar3 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c);
- Slot->LastLogoutTime = iVar3;
- TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c);
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'=');
- TReadScriptFile::readCoordinate((TReadScriptFile *)auStack_500c);
- TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c);
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'=');
- TReadScriptFile::readCoordinate((TReadScriptFile *)auStack_500c);
- TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c);
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'=');
- iVar3 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c);
- Slot->PlayerkillerEnd = iVar3;
- iVar3 = 0;
- do {
- Slot->Minimum[iVar3] = -0x80000000;
- iVar3 = iVar3 + 1;
- uVar10 = iVar3 == 0x18;
- } while (iVar3 < 0x19);
- do {
- TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c);
- pcVar11 = TReadScriptFile::getIdentifier((TReadScriptFile *)auStack_500c);
- iVar3 = 6;
- pcVar9 = "skill";
- do {
- if (iVar3 == 0) break;
- iVar3 = iVar3 + -1;
- uVar10 = *pcVar11 == *pcVar9;
- pcVar11 = pcVar11 + 1;
- pcVar9 = pcVar9 + 1;
- } while ((bool)uVar10);
- if (!(bool)uVar10) goto LAB_0806cb0a;
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'=');
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'(');
- iVar3 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c);
- bVar1 = false;
- if ((-1 < iVar3) && (iVar3 < 0x19)) {
- bVar1 = true;
- }
- uVar10 = !bVar1;
- if ((bool)uVar10) {
- TReadScriptFile::error((TReadScriptFile *)auStack_500c,"illegal skill number");
- }
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,',');
- iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c);
- Slot->Actual[iVar3] = iVar5;
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,',');
- iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c);
- Slot->Maximum[iVar3] = iVar5;
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,',');
- iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c);
- Slot->Minimum[iVar3] = iVar5;
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,',');
- iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c);
- Slot->DeltaAct[iVar3] = iVar5;
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,',');
- iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c);
- Slot->MagicDeltaAct[iVar3] = iVar5;
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,',');
- iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c);
- Slot->Cycle[iVar3] = iVar5;
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,',');
- iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c);
- Slot->MaxCycle[iVar3] = iVar5;
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,',');
- iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c);
- Slot->Count[iVar3] = iVar5;
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,',');
- iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c);
- Slot->MaxCount[iVar3] = iVar5;
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,',');
- iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c);
- Slot->AddLevel[iVar3] = iVar5;
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,',');
- iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c);
- Slot->Experience[iVar3] = iVar5;
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,',');
- iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c);
- Slot->FactorPercent[iVar3] = iVar5;
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,',');
- iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c);
- Slot->NextLevel[iVar3] = iVar5;
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,',');
- iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c);
- Slot->Delta[iVar3] = iVar5;
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,')');
- } while( true );
- }
- pcVar11 = &DAT_080f6720;
- }
- error(pcVar11);
- return false;
-LAB_0806cb0a:
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'=');
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'{');
-LAB_0806cb3b:
- TReadScriptFile::nextToken((TReadScriptFile *)auStack_500c);
- if (_auStack_500c != SPECIAL) goto LAB_0806cb7f;
- cVar2 = TReadScriptFile::getSpecial((TReadScriptFile *)auStack_500c);
- if (cVar2 != '}') goto code_r0x0806cb64;
- TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c);
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'=');
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'{');
- while( true ) {
- TReadScriptFile::nextToken((TReadScriptFile *)auStack_500c);
- if (_auStack_500c != SPECIAL) goto LAB_0806cc5a;
- cVar2 = TReadScriptFile::getSpecial((TReadScriptFile *)auStack_500c);
- if (cVar2 == '}') break;
- if (_auStack_500c != SPECIAL) goto LAB_0806cc5a;
- cVar2 = TReadScriptFile::getSpecial((TReadScriptFile *)auStack_500c);
- if (cVar2 != ',') {
- if ((_auStack_500c != SPECIAL) ||
- (cVar2 = TReadScriptFile::getSpecial((TReadScriptFile *)auStack_500c), cVar2 != '('))
- {
-LAB_0806cc5a:
- TReadScriptFile::error((TReadScriptFile *)auStack_500c,"\'(\' expected");
- }
- iVar3 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c);
- bVar1 = false;
- if ((-1 < iVar3) && (iVar3 < 500)) {
- bVar1 = true;
- }
- if (!bVar1) {
- TReadScriptFile::error((TReadScriptFile *)auStack_500c,"illegal quest number");
- }
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,',');
- iVar5 = TReadScriptFile::readNumber((TReadScriptFile *)auStack_500c);
- Slot->QuestValues[iVar3] = iVar5;
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,')');
- }
- }
- TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c);
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'=');
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'{');
-LAB_0806cd45:
- TReadScriptFile::nextToken((TReadScriptFile *)auStack_500c);
- if (_auStack_500c != SPECIAL) goto LAB_0806cd89;
- cVar2 = TReadScriptFile::getSpecial((TReadScriptFile *)auStack_500c);
- if (cVar2 != '}') goto code_r0x0806cd6e;
- TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c);
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'=');
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'{');
- HelpBuffer.super_TWriteBuffer.Size = 0;
-LAB_0806cdfa:
- TReadScriptFile::nextToken((TReadScriptFile *)auStack_500c);
- if (_auStack_500c != SPECIAL) goto LAB_0806ce42;
- cVar2 = TReadScriptFile::getSpecial((TReadScriptFile *)auStack_500c);
- if (cVar2 != '}') goto code_r0x0806ce27;
- TDynamicWriteBuffer::writeByte((TDynamicWriteBuffer *)local_102c,0xff);
- Slot->InventorySize = HelpBuffer.super_TWriteBuffer.Size;
- puVar6 = (uchar *)operator_new__(HelpBuffer.super_TWriteBuffer.Size);
- Slot->Inventory = puVar6;
- memcpy(puVar6,HelpBuffer.super_TWriteBuffer.super_TWriteStream._vptr_TWriteStream,
- Slot->InventorySize);
- TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c);
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'=');
- pcVar11 = (char *)0x7b;
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'{');
- iVar3 = 0;
- do {
- Slot->Depot[iVar3] = (uchar *)0x0;
- iVar3 = iVar3 + 1;
- } while (iVar3 < 9);
-LAB_0806cf45:
- TReadScriptFile::nextToken((TReadScriptFile *)auStack_500c);
- if (_auStack_500c == SPECIAL) goto code_r0x0806cf5c;
- goto LAB_0806cf8d;
-code_r0x0806cb64:
- if ((_auStack_500c != SPECIAL) ||
- (cVar2 = TReadScriptFile::getSpecial((TReadScriptFile *)auStack_500c), cVar2 != ',')) {
-LAB_0806cb7f:
- iVar3 = TReadScriptFile::getNumber((TReadScriptFile *)auStack_500c);
- bVar1 = false;
- if ((-1 < iVar3) && (iVar3 < 0x100)) {
- bVar1 = true;
- }
- if (!bVar1) {
- TReadScriptFile::error((TReadScriptFile *)auStack_500c,"illegal spell number");
- }
- Slot->SpellList[iVar3] = '\x01';
- }
- goto LAB_0806cb3b;
-code_r0x0806cd6e:
- if ((_auStack_500c != SPECIAL) ||
- (cVar2 = TReadScriptFile::getSpecial((TReadScriptFile *)auStack_500c), cVar2 != ',')) {
-LAB_0806cd89:
- iVar3 = 1;
- do {
- Slot->MurderTimestamps[iVar3 + -1] = Slot->MurderTimestamps[iVar3];
- iVar3 = iVar3 + 1;
- } while (iVar3 < 0x14);
- iVar3 = TReadScriptFile::getNumber((TReadScriptFile *)auStack_500c);
- Slot->MurderTimestamps[0x13] = iVar3;
- }
- goto LAB_0806cd45;
-code_r0x0806ce27:
- if ((_auStack_500c != SPECIAL) ||
- (cVar2 = TReadScriptFile::getSpecial((TReadScriptFile *)auStack_500c), cVar2 != ',')) {
-LAB_0806ce42:
- iVar3 = TReadScriptFile::getNumber((TReadScriptFile *)auStack_500c);
- TDynamicWriteBuffer::writeByte((TDynamicWriteBuffer *)local_102c,(uchar)iVar3);
- TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c);
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'=');
- LoadObjects((TReadScriptFile *)auStack_500c,(TWriteStream *)local_102c,false);
- }
- goto LAB_0806cdfa;
-code_r0x0806cf5c:
- cVar2 = TReadScriptFile::getSpecial((TReadScriptFile *)auStack_500c);
- if (cVar2 == '}') {
- TReadScriptFile::nextToken((TReadScriptFile *)auStack_500c);
- if (_auStack_500c != ENDOFFILE) {
- pcVar11 = "end of file expected";
- TReadScriptFile::error((TReadScriptFile *)auStack_500c,"end of file expected");
- }
- TReadScriptFile::close((TReadScriptFile *)auStack_500c,(int)pcVar11);
- // try { // try from 0806d073 to 0806d077 has its CatchHandler @ 0806d1cf
- TReadScriptFile::~TReadScriptFile((TReadScriptFile *)auStack_500c,(int)pcVar11);
- TDynamicWriteBuffer::~TDynamicWriteBuffer((TDynamicWriteBuffer *)local_102c,(int)pcVar11);
- return true;
- }
- if ((_auStack_500c != SPECIAL) ||
- (cVar2 = TReadScriptFile::getSpecial((TReadScriptFile *)auStack_500c), cVar2 != ',')) {
-LAB_0806cf8d:
- iVar3 = TReadScriptFile::getNumber((TReadScriptFile *)auStack_500c);
- TReadScriptFile::readIdentifier((TReadScriptFile *)auStack_500c);
- TReadScriptFile::readSymbol((TReadScriptFile *)auStack_500c,'=');
- HelpBuffer.super_TWriteBuffer.Size = 0;
- LoadObjects((TReadScriptFile *)auStack_500c,(TWriteStream *)local_102c,false);
- Slot->DepotSize[iVar3] = HelpBuffer.super_TWriteBuffer.Size;
- puVar6 = (uchar *)operator_new__(HelpBuffer.super_TWriteBuffer.Size);
- Slot->Depot[iVar3] = puVar6;
- pcVar11 = (char *)HelpBuffer.super_TWriteBuffer.super_TWriteStream;
- memcpy(puVar6,HelpBuffer.super_TWriteBuffer.super_TWriteStream._vptr_TWriteStream,
- Slot->DepotSize[iVar3]);
- }
- goto LAB_0806cf45;
-}
-
-
-
-void SavePlayerData(TPlayerData *Slot)
-
-{
- uint uVar1;
- bool bVar2;
- bool FirstSpell;
- byte bVar3;
- time_t tVar4;
- int Number;
- int SpellNr;
- int *piVar5;
- int Limitation;
- int iVar6;
- char *pcVar7;
- undefined *__fd;
- undefined1 local_203c;
- bool FirstDepot;
- bool FirstPosition;
- bool FirstMurder;
- TReadBuffer Buffer;
- TWriteScriptFile Script;
- char local_101c [4];
- char FileName [4096];
-
- if (Slot == (TPlayerData *)0x0) {
- pcVar7 = "SavePlayerData: Slot ist NULL.\n";
- }
- else {
- uVar1 = Slot->CharacterID;
- if (uVar1 != 0) {
- pcVar7 = USERPATH;
- sprintf(local_101c,"%s/%02ld/%ld.%s",USERPATH,uVar1 % 100,uVar1,&DAT_080f6560);
- // try { // try from 0806d29e to 0806d2a2 has its CatchHandler @ 0806de36
- TWriteScriptFile::TWriteScriptFile((TWriteScriptFile *)&Buffer.Position);
- // try { // try from 0806d2b6 to 0806d3b6 has its CatchHandler @ 0806de30
- TWriteScriptFile::open((TWriteScriptFile *)&Buffer.Position,local_101c,(int)pcVar7);
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"ID = ");
- TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,Slot->CharacterID);
- TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position);
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"Name = ");
- TWriteScriptFile::writeString((TWriteScriptFile *)&Buffer.Position,Slot->Name);
- TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position);
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"Race = ");
- TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,Slot->Race);
- TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position);
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"Profession = ");
- TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,Slot->Profession);
- TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position);
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"OriginalOutfit = ");
- // try { // try from 0806d3cb to 0806d431 has its CatchHandler @ 0806ddc3
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"(");
- TWriteScriptFile::writeNumber
- ((TWriteScriptFile *)&Buffer.Position,(Slot->OriginalOutfit).OutfitID);
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,",");
- if ((Slot->OriginalOutfit).OutfitID == 0) {
- TWriteScriptFile::writeNumber
- ((TWriteScriptFile *)&Buffer.Position,
- (uint)(Slot->OriginalOutfit).field_1.ObjectType);
- }
- else {
- // try { // try from 0806ddad to 0806ddb1 has its CatchHandler @ 0806ddc3
- TWriteScriptFile::writeBytesequence
- ((TWriteScriptFile *)&Buffer.Position,
- (Slot->OriginalOutfit).field_1.Colors,4);
- }
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,")");
- // try { // try from 0806d43b to 0806d455 has its CatchHandler @ 0806de30
- TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position);
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"CurrentOutfit = ");
- // try { // try from 0806d46a to 0806d4d0 has its CatchHandler @ 0806ddc3
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"(");
- TWriteScriptFile::writeNumber
- ((TWriteScriptFile *)&Buffer.Position,(Slot->CurrentOutfit).OutfitID);
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,",");
- if ((Slot->CurrentOutfit).OutfitID == 0) {
- TWriteScriptFile::writeNumber
- ((TWriteScriptFile *)&Buffer.Position,
- (uint)(Slot->CurrentOutfit).field_1.ObjectType);
- }
- else {
- // try { // try from 0806dd8b to 0806dd8f has its CatchHandler @ 0806ddc3
- TWriteScriptFile::writeBytesequence
- ((TWriteScriptFile *)&Buffer.Position,(Slot->CurrentOutfit).field_1.Colors
- ,4);
- }
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,")");
- // try { // try from 0806d4da to 0806dd20 has its CatchHandler @ 0806de30
- TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position);
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"LastLogin = ");
- TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,Slot->LastLoginTime);
- TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position);
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"LastLogout = ");
- TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,Slot->LastLogoutTime)
- ;
- TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position);
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"StartPosition = ");
- TWriteScriptFile::writeCoordinate
- ((TWriteScriptFile *)&Buffer.Position,Slot->startx,Slot->starty,Slot->startz);
- TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position);
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"CurrentPosition = ");
- TWriteScriptFile::writeCoordinate
- ((TWriteScriptFile *)&Buffer.Position,Slot->posx,Slot->posy,Slot->posz);
- TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position);
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"PlayerkillerEnd = ");
- TWriteScriptFile::writeNumber
- ((TWriteScriptFile *)&Buffer.Position,Slot->PlayerkillerEnd);
- TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position);
- TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position);
- iVar6 = 0;
- piVar5 = Slot->Delta;
- do {
- if (piVar5[-0x113] != -0x80000000) {
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"Skill = (");
- TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,iVar6);
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,",");
- TWriteScriptFile::writeNumber
- ((TWriteScriptFile *)&Buffer.Position,piVar5[-0x145]);
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,",");
- TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,piVar5[-300])
- ;
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,",");
- TWriteScriptFile::writeNumber
- ((TWriteScriptFile *)&Buffer.Position,piVar5[-0x113]);
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,",");
- TWriteScriptFile::writeNumber
- ((TWriteScriptFile *)&Buffer.Position,piVar5[-0xfa]);
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,",");
- TWriteScriptFile::writeNumber
- ((TWriteScriptFile *)&Buffer.Position,piVar5[-0xe1]);
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,",");
- TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,piVar5[-200])
- ;
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,",");
- TWriteScriptFile::writeNumber
- ((TWriteScriptFile *)&Buffer.Position,piVar5[-0xaf]);
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,",");
- TWriteScriptFile::writeNumber
- ((TWriteScriptFile *)&Buffer.Position,piVar5[-0x96]);
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,",");
- TWriteScriptFile::writeNumber
- ((TWriteScriptFile *)&Buffer.Position,piVar5[-0x7d]);
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,",");
- TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,piVar5[-100])
- ;
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,",");
- TWriteScriptFile::writeNumber
- ((TWriteScriptFile *)&Buffer.Position,piVar5[-0x4b]);
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,",");
- TWriteScriptFile::writeNumber
- ((TWriteScriptFile *)&Buffer.Position,piVar5[-0x32]);
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,",");
- TWriteScriptFile::writeNumber
- ((TWriteScriptFile *)&Buffer.Position,piVar5[-0x19]);
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,",");
- TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,*piVar5);
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,")");
- TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position);
- }
- iVar6 = iVar6 + 1;
- piVar5 = piVar5 + 1;
- } while (iVar6 < 0x19);
- TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position);
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"Spells = {");
- bVar2 = true;
- iVar6 = 0;
- do {
- if (Slot->SpellList[iVar6] != '\0') {
- if (!bVar2) {
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,",");
- }
- TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,iVar6);
- bVar2 = false;
- }
- iVar6 = iVar6 + 1;
- } while (iVar6 < 0x100);
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"}");
- TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position);
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"QuestValues = {");
- bVar2 = true;
- iVar6 = 0;
- do {
- if (Slot->QuestValues[iVar6] != 0) {
- if (!bVar2) {
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,",");
- }
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"(");
- TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,iVar6);
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,",");
- TWriteScriptFile::writeNumber
- ((TWriteScriptFile *)&Buffer.Position,Slot->QuestValues[iVar6]);
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,")");
- bVar2 = false;
- }
- iVar6 = iVar6 + 1;
- } while (iVar6 < 500);
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"}");
- TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position);
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"Murders = {");
- bVar2 = true;
- iVar6 = 0;
- tVar4 = time((time_t *)0x0);
- do {
- Number = Slot->MurderTimestamps[iVar6];
- if (tVar4 + -0x278d00 < Number) {
- if (!bVar2) {
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,",");
- Number = Slot->MurderTimestamps[iVar6];
- }
- TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,Number);
- bVar2 = false;
- }
- iVar6 = iVar6 + 1;
- } while (iVar6 < 0x14);
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"}");
- TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position);
- TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position);
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"Inventory = {");
- if (Slot->Inventory != (uchar *)0x0) {
- TReadBuffer::TReadBuffer
- ((TReadBuffer *)&local_203c,Slot->Inventory,Slot->InventorySize);
- bVar2 = true;
- while (bVar3 = TReadBuffer::readByte((TReadBuffer *)&local_203c), bVar3 != 0xff) {
- if (bVar2) {
- bVar2 = false;
- }
- else {
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,",");
- TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position);
- TWriteScriptFile::writeText
- ((TWriteScriptFile *)&Buffer.Position," ");
- }
- TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,(uint)bVar3);
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position," Content=");
- SaveObjects((TReadStream *)&local_203c,(TWriteScriptFile *)&Buffer.Position);
- }
- }
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"}");
- TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position);
- TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position);
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"Depots = {");
- bVar2 = true;
- iVar6 = 0;
- do {
- if (Slot->Depot[iVar6] != (uchar *)0x0) {
- if (bVar2) {
- bVar2 = false;
- }
- else {
- // try { // try from 0806dd45 to 0806dd6d has its CatchHandler @ 0806de30
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,", ");
- TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position);
- TWriteScriptFile::writeText
- ((TWriteScriptFile *)&Buffer.Position," ");
- }
- TWriteScriptFile::writeNumber((TWriteScriptFile *)&Buffer.Position,iVar6);
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position," Content=");
- TReadBuffer::TReadBuffer
- ((TReadBuffer *)&local_203c,Slot->Depot[iVar6],Slot->DepotSize[iVar6])
- ;
- SaveObjects((TReadStream *)&local_203c,(TWriteScriptFile *)&Buffer.Position);
- }
- iVar6 = iVar6 + 1;
- } while (iVar6 < 9);
- __fd = &DAT_080f2aa0;
- TWriteScriptFile::writeText((TWriteScriptFile *)&Buffer.Position,"}");
- TWriteScriptFile::writeLn((TWriteScriptFile *)&Buffer.Position);
- TWriteScriptFile::close((TWriteScriptFile *)&Buffer.Position,(int)__fd);
- // try { // try from 0806dd2a to 0806dd2e has its CatchHandler @ 0806de36
- TWriteScriptFile::~TWriteScriptFile((TWriteScriptFile *)&Buffer.Position,(int)__fd);
- return;
- }
- pcVar7 = &DAT_080f6800;
- }
- error(pcVar7);
- return;
-}
-
-
-
-void UnlinkPlayerData(ulong CharacterID)
-
-{
- char local_100c [4];
- char FileName [4096];
-
- sprintf(local_100c,"%s/%02ld/%ld.%s",USERPATH,CharacterID % 100,CharacterID,&DAT_080f6560);
- unlink(local_100c);
- return;
-}
-
// QUERY.CC
//==============================================================================
|
