explain quest counters more clearly

This commit is contained in:
Martin Michelsen
2026-05-30 09:52:19 -07:00
parent 9187a3ceb0
commit 1dee20713b
2 changed files with 15 additions and 15 deletions
+2 -2
View File
@@ -40,9 +40,9 @@
// stack_pop opcodes to work with arbitrary data. There is protection from stack underflows (the caller receives the // stack_pop opcodes to work with arbitrary data. There is protection from stack underflows (the caller receives the
// value 0, or the thread terminates in case of the ret opcode), but there is no protection from overflows. // value 0, or the thread terminates in case of the ret opcode), but there is no protection from overflows.
// - The quest flags are a per-character array of 1024 single-bit flags saved with the character data. (On Episode 3, // - The quest flags are a per-character array of 1024 single-bit flags saved with the character data. (On Episode 3,
// there are 8192 instead.) // there are 8192 instead.) Each character has independent sets of quest flags for each difficulty level.
// - The quest counters are a per-character array of 16 32-bit values saved with the character data. (On Episode 3, // - The quest counters are a per-character array of 16 32-bit values saved with the character data. (On Episode 3,
// there are 48 instead.) // there are 48 instead.) Unlike quest flags, there is only one set of quest counters, used for all difficulties.
// - The event flags are an array of 0x100 bytes stored in the system file (not the character file). // - The event flags are an array of 0x100 bytes stored in the system file (not the character file).
using AttackData = BattleParamsIndex::AttackData; using AttackData = BattleParamsIndex::AttackData;
+13 -13
View File
@@ -334,8 +334,8 @@ struct PSOBBMinimalSystemFile {
} __packed_ws__(PSOBBMinimalSystemFile, 0x114); } __packed_ws__(PSOBBMinimalSystemFile, 0x114);
struct PSOBBBaseSystemFile : PSOBBMinimalSystemFile { struct PSOBBBaseSystemFile : PSOBBMinimalSystemFile {
/* 0114 */ parray<uint8_t, 0x016C> key_config; /* 0114 */ parray<uint8_t, 0x16C> key_config;
/* 0280 */ parray<uint8_t, 0x0038> joystick_config; /* 0280 */ parray<uint8_t, 0x38> joystick_config;
/* 02B8 */ /* 02B8 */
PSOBBBaseSystemFile(); PSOBBBaseSystemFile();
@@ -808,15 +808,15 @@ struct PSOBBCharacterFile {
/* 1AC8 */ le_uint32_t unknown_a3 = 0; /* 1AC8 */ le_uint32_t unknown_a3 = 0;
/* 1ACC */ parray<SaveFileSymbolChatEntryBB, 0x0C> symbol_chats; /* 1ACC */ parray<SaveFileSymbolChatEntryBB, 0x0C> symbol_chats;
/* 1FAC */ parray<SaveFileShortcutEntryBB, 0x10> shortcuts; /* 1FAC */ parray<SaveFileShortcutEntryBB, 0x10> shortcuts;
/* 29EC */ pstring<TextEncoding::UTF16, 0x00AC> auto_reply; /* 29EC */ pstring<TextEncoding::UTF16, 0xAC> auto_reply;
/* 2B44 */ pstring<TextEncoding::UTF16, 0x00AC> info_board; /* 2B44 */ pstring<TextEncoding::UTF16, 0xAC> info_board;
/* 2C9C */ PlayerRecordsBattle battle_records; /* 2C9C */ PlayerRecordsBattle battle_records;
/* 2CB4 */ parray<uint8_t, 4> unknown_a4; /* 2CB4 */ parray<uint8_t, 4> unknown_a4;
/* 2CB8 */ PlayerRecordsChallengeBB challenge_records; /* 2CB8 */ PlayerRecordsChallengeBB challenge_records;
/* 2DF8 */ parray<le_uint16_t, 0x0014> tech_menu_shortcut_entries; /* 2DF8 */ parray<le_uint16_t, 0x14> tech_menu_shortcut_entries;
/* 2E20 */ ChoiceSearchConfig choice_search_config; /* 2E20 */ ChoiceSearchConfig choice_search_config;
/* 2E38 */ parray<uint8_t, 0x0010> unknown_a6; /* 2E38 */ parray<uint8_t, 0x10> unknown_a6;
/* 2E48 */ parray<le_uint32_t, 0x0010> quest_counters; /* 2E48 */ parray<le_uint32_t, 0x10> quest_counters;
/* 2E88 */ PlayerRecordsBattle offline_battle_records; /* 2E88 */ PlayerRecordsBattle offline_battle_records;
/* 2EA0 */ parray<uint8_t, 4> unknown_a7; /* 2EA0 */ parray<uint8_t, 4> unknown_a7;
/* 2EA4 */ /* 2EA4 */
@@ -1040,18 +1040,18 @@ struct LegacySavedPlayerDataBB { // .nsc file format
/* 0008 */ parray<uint8_t, 0x20> unused; /* 0008 */ parray<uint8_t, 0x20> unused;
/* 0028 */ PlayerRecordsBattle battle_records; /* 0028 */ PlayerRecordsBattle battle_records;
/* 0040 */ PlayerDispDataV4Preview preview; /* 0040 */ PlayerDispDataV4Preview preview;
/* 00BC */ pstring<TextEncoding::UTF16, 0x00AC> auto_reply; /* 00BC */ pstring<TextEncoding::UTF16, 0xAC> auto_reply;
/* 0214 */ PlayerBank200 bank; /* 0214 */ PlayerBank200 bank;
/* 14DC */ PlayerRecordsChallengeBB challenge_records; /* 14DC */ PlayerRecordsChallengeBB challenge_records;
/* 161C */ PlayerDispDataV4 disp; /* 161C */ PlayerDispDataV4 disp;
/* 17AC */ pstring<TextEncoding::UTF16, 0x0058> guild_card_description; /* 17AC */ pstring<TextEncoding::UTF16, 0x58> guild_card_description;
/* 185C */ pstring<TextEncoding::UTF16, 0x00AC> info_board; /* 185C */ pstring<TextEncoding::UTF16, 0xAC> info_board;
/* 19B4 */ PlayerInventory inventory; /* 19B4 */ PlayerInventory inventory;
/* 1D00 */ parray<uint8_t, 4> unknown_a2; /* 1D00 */ parray<uint8_t, 4> unknown_a2;
/* 1D04 */ QuestFlags quest_flags; /* 1D04 */ QuestFlags quest_flags;
/* 1F04 */ le_uint32_t death_count = 0; /* 1F04 */ le_uint32_t death_count = 0;
/* 1F08 */ parray<le_uint32_t, 0x0016> quest_counters; /* 1F08 */ parray<le_uint32_t, 0x16> quest_counters;
/* 1F60 */ parray<le_uint16_t, 0x0014> tech_menu_shortcut_entries; /* 1F60 */ parray<le_uint16_t, 0x14> tech_menu_shortcut_entries;
/* 1F88 */ /* 1F88 */
} __packed_ws__(LegacySavedPlayerDataBB, 0x1F88); } __packed_ws__(LegacySavedPlayerDataBB, 0x1F88);
@@ -1059,7 +1059,7 @@ struct LegacySavedAccountDataBB { // .nsa file format
static const char* SIGNATURE; static const char* SIGNATURE;
/* 0000 */ pstring<TextEncoding::ASCII, 0x40> signature; /* 0000 */ pstring<TextEncoding::ASCII, 0x40> signature;
/* 0040 */ parray<le_uint32_t, 0x001E> blocked_senders; /* 0040 */ parray<le_uint32_t, 0x1E> blocked_senders;
/* 00B8 */ PSOBBGuildCardFile guild_card_file; /* 00B8 */ PSOBBGuildCardFile guild_card_file;
/* D648 */ PSOBBBaseSystemFile system_file; /* D648 */ PSOBBBaseSystemFile system_file;
/* D880 */ PSOBBFullTeamMembership team_membership; /* D880 */ PSOBBFullTeamMembership team_membership;