Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- typedef struct {
- /* 0x00 */ char unk00[0x20];
- /* Size: 0x20 */
- } ATTACH_LIST;
- typedef struct {
- /* 0x00 */ char unk00[0xF8];
- /* Size: 0xF8 */
- } WEAPON_HAVE;
- typedef struct {
- /* 0x00 */ s16 unk00;
- /* 0x02 */ s16 unk02[10]; // Slot
- /* 0x16 */ s16 unk16[10]; // Menu
- /* 0x2A */
- /* Size: 0x2C */
- } CMenuCursor; /* 0x00158AE0 InitPos__11CMenuCursorFv */
- typedef struct {
- /* 0x0000 */ s8 NowDungeon;
- /* 0x0001 */
- /* 0x0002 */ s8 NowFloor;
- /* 0x0003 */ s8 LastFloor;
- /* 0x0004 */ s8 NowChara;
- /* 0x0005 */ s8 TotalChara;
- /* 0x0006 */ s16 MaxLife[6];
- /* 0x0012 */ s16 NowLife[6];
- /* 0x001E */
- /* 0x0278 */ s32 unk0278[6][40][8]; // Atla related ([dungeon][floor?][idx])
- /* 0x2078 */ char unk2078[6][100][0x0C]; // Struct of Size: 0x0C (Atla related)
- /* 0x3C98 */ s16 FloorKills[7][100]; // (My guess is these 2 arrays are 7 dungeons, it fits perfectly, however they initialize only 6)
- /* 0x4210 */ s8 unk4210[7][25]; // Limited Zone Floors
- /* 0x42BF */ s8 FloorsCleared[7];
- /* 0x42C6 */
- /* 0x42C8 */ s32 NowStatus[6];
- /* 0x42E0 */ s16 unk42E0[6];
- /* 0x42EC */ f32 MaxThirst[6];
- /* 0x4304 */ f32 NowThirst[6];
- /* 0x431C */ s32 unk431C; // Non-zero forces menu open
- /* 0x4320 */ s32 unk4320; // Go To Dungeon / Go To Other Area
- /* 0x4324 */
- /* 0x433C */ s32 unk433C; // Option: Map Display Density
- /* 0x4340 */ s8 DefaultWeapon[6];
- /* 0x4346 */ u16 Gold;
- /* 0x4348 */ s32 Defense[6];
- /* 0x4360 */ s8 unk4360; // Item Capacity
- /* 0x4361 */
- /* 0x4362 */ s16 unk4362[3]; // Active Items
- /* 0x4368 */ s16 unk4368[3]; // Active Item Counts
- /* 0x436E */ s16 Items[103];
- /* 0x443C */ s16 Slots[103];
- /* 0x450A */
- /* 0x450C */ WEAPON_HAVE Weapons[6][11];
- /* 0x84FC */ ATTACH_LIST Attachs[43];
- /* Size: 0x8A5C */
- } CDngStatusData; /* 0x001BF340 Initialize__14CDngStatusDataFv */
- // class CUserStatus : public CDngStatusData {}
- typedef struct {
- /* 0x0000 */ CDngStatusData DngStatusData; // Inheritance
- /* 0x8A5C */ s16 unk8A5C[6]; // NowLife copy
- /* 0x8A68 */ s16 unk8A68[6];
- /* 0x8A74 */ s32 unk8A74[6];
- /* 0x8A8C */ s32 unk8A8C[6];
- /* 0x8AA4 */ s8 unk8AA4[50]; // EventFlag?
- /* 0x8AD6 */ s16 unk8AD6[6]; // Thirst related
- /* 0x8AE2 */ s16 unk8AE2[6];
- /* 0x8AEE */
- /* 0x8AF0 */ f32 unk8AF0[6]; // Thirst related (Time before next life drain?)
- /* 0x8B08 */ s32 unk8B08; // User is NOT moving
- /* 0x8B0C */ s32 unk8B0C;
- /* 0x8B10 */ s32 unk8B10;
- /* 0x8B14 */
- } CUserStatus; /* 0x001BEDE0 Init__11CUserStatusFv */
- typedef struct {
- /* 0x0000 */ s16 Items[60];
- /* 0x0078 */ s16 Slots[60];
- /* 0x00F0 */ WEAPON_HAVE Weapons[30];
- /* 0x1E00 */ ATTACH_LIST Attachs[30];
- /* Size: 0x21C0 */
- } CStockItem; /* 0x0023F590 Initialize__10CStockItemFv */
- typedef struct {
- /* 0x00048 */ u16 CharaName[6][0x20];
- /* 0x001C8 */
- /* 0x001D0 */ f32 NowTime;
- /* 0x001D4 */ s32 PlayTime;
- /* 0x001D8 */ s32 Day;
- /* 0x001DC */ s32 FishingPoint;
- /* 0x001E0 */ char unk001E0[0x40][0x10]; // Struct of Size: 0x10 (4 floats) (Fishing?)
- /* 0x005E0 */
- /* 0x00650 */ CMenuCursor MenuCursor;
- /* 0x0067C */ char unk0067C[6][0xBB8]; // Struct of Size: 0xBB8
- /* 0x04CCC */ s16 ElemData[6][128];
- /* 0x052CC */
- /* 0x0540C */ CUserStatusData UserStatusData;
- /* 0x0E0A8 */ CStockItem StockItem;
- /* 0x10268 */ s32 GameFlag[0x100];
- /* 0x10668 */ s32 GameIntFlag[0x20];
- /* 0x106E8 */ s32 MapFlag[0x50][0x10];
- /* 0x11AE8 */ s32 MapInitFlag[0x50][0x10];
- /* 0x12EE8 */ s16 VisitMap[0x50];
- /* 0x12F88 */ s16 VisitDungeon[6]; // (7? Demon Shaft?)
- /* 0x12F98 */ s32 VisitDemonShaft;
- /* 0x12F9C */
- /* Size: 0x131C0 */
- } CSaveData; /* 0x00158B60 Initialize__9CSaveDataFv */
- /* 0x00157FB0 */
- s32* CSaveData::GetGrdData(s32 arg1) {
- if (arg1 >= 0 && arg1 < 6) {
- return &this->unk0067C[i];
- } else {
- return NULL;
- }
- }
- /* 0x001581A0 */
- s16* CSaveData::GetElemData(s32 arg1) {
- if (arg1 >= 0 && arg1 < 6) {
- return &this->ElemData[arg1][0];
- } else {
- return NULL;
- }
- }
- /* 0x001581E0 */
- CUserStatusData* CSaveData::GetDngStatus(void) {
- return &this->UserStatusData;
- }
- /* 0x001581F0 */
- CStockItem* CSaveData::GetStockItem(void) {
- return &this->StockItem;
- }
- /* 0x00158800 */
- s32 CSaveData::VisitMap(s32 NowMap, s16 Visits) {
- if (NowMap >= 0 && NowMap < 0x50) {
- this->VisitMap[NowMap] += Visits;
- this->VisitMap[NowMap] = this->VisitMap[NowMap] > 9999 ? 9999 : this->VisitMap[NowMap];
- return this->VisitMap[NowMap];
- } else {
- return 0;
- }
- }
- /* 0x00158874 */
- s32 CSaveData::QuestDungeon(s32 NowDungeon, s16 Visits) {
- if (NowDungeon == 6) {
- this->VisitDemonShaft += Visits;
- this->VisitDemonShaft = this->VisitDemonShaft > 9999 ? 9999 : this->VisitDemonShaft;
- return this->VisitDemonShaft;
- } else if (NowDungeon >= 0 && NowDungeon < 6) {
- this->VisitDungeon[NowDungeon] += Visits;
- this->VisitDungeon[NowDungeon] = this->VisitDungeon[NowDungeon] > 9999 ? 9999 : this->VisitDungeon[NowDungeon];
- return this->VisitDungeon[NowDungeon];
- } else {
- return 0;
- }
- }
- /* 0x00158AE0 */
- void CMenuCursor::InitPos(void) {
- for (int i = 0; i < 10; i++) {
- this->unk02[i] = 0;
- }
- for (int i = 0; i < 10; i++) {
- this->unk16[i] = -1;
- }
- this->unk16[0] = 4
- this->unk16[2] = 6;
- this->unk16[3] = 0;
- this->unk2A = 0;
- }
- /* 0x00158B60 */
- void CSaveData::Initialize(void) {
- memset(&this, 0, sizeof(this));
- this->unk001CC = -1;
- this->NowTime = 0;
- for (int i = 0; i < 6; i++) {
- for (int j = 0; j < 128; j++) {
- this->ElemData[i][j] = -1;
- }
- }
- for (int i = 0; i < 6; i++) {
- memset(&this->unk0067C[i], 0, 0xBB8);
- for (int j = 0; j < 24; j++) {
- for (int k = 0; k < 6; k++) {
- this->unk0067C[i].unk00A[j][k] = 0;
- }
- }
- for (int j = 0; j < 130; j++) {
- this->unk0067C[i].unk2A8[j] = -1;
- }
- }
- this->UserStatusData.Initialize();
- this->StockItem.Initialize();
- memset(&this, 0, 0x48);
- memset(&this->GameFlag, 0, 0x400);
- memset(&this->MapFlag, 0, 0x4);
- }
- /* 0x00158D30 */
- CSaveData::CSaveData(void) {
- this->MenuCursor.unk00 = 0;
- this->MenuCursor.InitPos();
- this->Initialize();
- }
- /* 0x001BDBC0 */
- void CDngStatusData::LostGateKey(void) {
- for (int i = 0; i < 103; i++) {
- if (this->Items[i] == 0xC3) {
- this->Items[i] = -1;
- }
- if (this->Items[i] == 0xC4) {
- this->Items[i] = -1;
- }
- if (this->Items[i] == 0xC6) {
- this->Items[i] = -1;
- }
- if (this->Items[i] == 0xC9) {
- this->Items[i] = -1;
- }
- if (this->Items[i] == 0xCA) {
- this->Items[i] = -1;
- }
- if (this->Items[i] == 0xCB) {
- this->Items[i] = -1;
- }
- if (this->Items[i] == 0xCC) {
- this->Items[i] = -1;
- }
- if (this->Items[i] == 0xCD) {
- this->Items[i] = -1;
- }
- if (this->Items[i] == 0xCE) {
- this->Items[i] = -1;
- }
- if (this->Items[i] >= 0xD8 && this->Items[i] < 0xDF) {
- this->Items[i] = -1;
- }
- }
- }
- /* 0x001BEEF0 */
- void CDngStatusData::SetDead(void) {
- this->Gold /= 2;
- }
- /* 0x001BEF10 */
- void CDngStatusData::SetResLimmitZone(void) {
- if (this->unk4210[this->NowDungeon][this->NowFloor] != -1) {
- this->unk8B10 = this->unk4210[this->NowDungeon][this->NowFloor];
- }
- }
- /* 0x001BF700 */
- void CDngStatusData::AddKills(void) {
- this->FloorKills[this->NowDungeon][this->NowFloor]++;
- }
- /* 0x001BF740 */
- s16 CDngStatusData::ChkKills(s32 arg1, s32 arg2) {
- return this->FloorKills[arg1][arg2];
- }
- /* 0x00231AD0 */
- s32 GetAttachKind(s32 arg0) {
- if (arg0 >= 0x51 && arg0 < 0x5B) {
- return 1;
- } else if (arg0 >= 0x5B && arg0 < 0x60) {
- return 2;
- } else if (arg0 >= 0x60 && arg0 < 0x6E) {
- return 3;
- } else if (arg0 >= 0x6F && arg0 < 0x7A) {
- return 4;
- } else {
- return 5;
- }
- }
- /* 0x0023F590 */
- void CStockItem::Initialize(void) {
- memset(&this->Items, 0, 0x78);
- memset(&this->Slots, 0, 0x78);
- memset(&this->Weapons, 0, 0x1D10);
- memset(&this->Attachs, 0, 0x3C0);
- }
- /* 0x0023F6C0 */
- void CStockItem::SetItemToPos(s32 arg1, s16* arg2, s16* arg3) {
- s16 temp;
- temp = this->Items[arg1];
- this->Items[arg1] = *arg2;
- *arg2 = temp;
- temp = this->Slots[arg1];
- this->Slots[arg1] = *arg3;
- *arg3 = temp;
- }
- /* 0x0023F6F0 */
- void CStockItem::GetItemInfo(s32 arg1, s16* arg2, s16* arg3) {
- *arg2 = this->Items[arg1];
- *arg3 = this->Slots[arg1];
- }
- /* 0x0023F790 */
- void CStockItem::GetWeaponInfo(s32 arg1, WEAPON_HAVE* arg2) {
- memcpy(arg2, &this->Weapons[arg1], 0xF8);
- }
- /* 0x0023F850 */
- void CStockItem::GetAttachInfo(s32 arg1, ATTACH_LIST* arg2) {
- memcpy(arg2, &this->Attachs[arg1], 0x20);
- }
Add Comment
Please, Sign In to add comment