mirror of
https://github.com/pret/pmd-sky.git
synced 2026-10-01 22:57:58 -05:00
Decomped ExplorerMazeMonsterExists
Decomped by @slaw-22
This commit is contained in:
@@ -28,7 +28,7 @@ struct ground_monster {
|
||||
s8 level; // 0x1: Monster level
|
||||
u8 joined_at; // 0x2
|
||||
u8 joined_at_floor; // 0x3: See struct monster::joined_at_floor
|
||||
u16 id; // 0x4: Monster ID
|
||||
s16 id; // 0x4: Monster ID
|
||||
s8 level_at_first_evo; // 0x6: Level upon first evolution, or 0 if not applicable
|
||||
s8 level_at_second_evo; // 0x7: Level upon second evolution, or 0 if not applicable
|
||||
u16 iq; // 0x8
|
||||
@@ -87,4 +87,54 @@ struct team_member {
|
||||
char name[10]; // 0x5E: Display name of the monster
|
||||
};
|
||||
|
||||
// Table with information about all team members, which are active, and on which teams
|
||||
struct team_member_table {
|
||||
// 0x0: List of all recruited team members. Appears to be in chronological order of recruitment.
|
||||
//
|
||||
// The first two entries are fixed to the hero and partner. The next three entries are reserved
|
||||
// for special episode main characters, which differ (and will be updated here) depending on the
|
||||
// special episode. For example, in SE5, the third entry becomes Grovyle, with the fourth and
|
||||
// fifth entries becoming Dusknoir after progressing far enough into the special episode.
|
||||
//
|
||||
// Subsequent entries are normal recruits. If a member is released, all subsequent members will
|
||||
// be shifted up, so there should be no gaps in the list.
|
||||
struct ground_monster members[555];
|
||||
// 0x936C: Currently active team members for each team, listed in team order. The first index is
|
||||
// the team ID (see enum team_id), the second is the roster index within the given team.
|
||||
//
|
||||
// This struct is updated relatively infrequently. For example, in dungeon mode, it's typically
|
||||
// only updated at the start of the floor; refer to DUNGEON_STRUCT instead for live data.
|
||||
struct team_member active_team_rosters[3][4];
|
||||
// 0x984C: Pointer into active_team_rosters for the currently active team, i.e.,
|
||||
// &active_team_rosters[active_team]
|
||||
struct team_member* active_roster;
|
||||
// 0x9850: Number of active members on TEAM_MAIN
|
||||
s16 number_active_team_members_main;
|
||||
// 0x9852: Number of active members on TEAM_SPECIAL_EPISODE
|
||||
s16 number_active_team_members_se;
|
||||
// 0x9854: Number of active members on TEAM_RESCUE
|
||||
s16 number_active_team_members_rescue;
|
||||
// 0x9856: member indexes (into the members array) for the active rosters of each team
|
||||
s16 active_team_roster_member_idxs[3][4];
|
||||
// 0x9870: Pointer into active_team_roster_member_idxs for the currently active team, i.e.,
|
||||
// &active_team_roster_member_idxs[active_team]
|
||||
s16* active_roster_member_idxs;
|
||||
u8 field_0x9874; // Related to TEAM_MAIN (Guess)
|
||||
u8 field_0x9875; // Related to TEAM_SPECIAL_EPISODE
|
||||
u8 field_0x9876; // Related to TEAM_RESCUE
|
||||
enum team_id active_team; // 0x9877: Currently active team
|
||||
s32 field_0x9878; // Somehow related to explorer maze team.
|
||||
s32 field_0x987C; // Somehow related to explorer maze team.
|
||||
// 0x9880: language type of explorer maze team
|
||||
s8 explorer_maze_team_native_language;
|
||||
u8 field_0x9881; // Somehow related to explorer maze team.
|
||||
// 0x9882: Name of the explorer maze team. If the native language of the team doesn't match
|
||||
// our native language, use the default team name ("Pokémones" for NA) for the explorer
|
||||
// maze team. When initally saving the team name, it will use all 20 bytes, but when
|
||||
// copying the name to use in game, it will only use the first 10 bytes.
|
||||
u8 explorer_maze_team_name[20];
|
||||
// 0x9898: The 4 explorer maze monsters from selecting 'Team Trade'.
|
||||
struct ground_monster explorer_maze_monsters[4];
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -3,6 +3,13 @@
|
||||
|
||||
#define NUM_TACTICS TACTIC_NONE + 1
|
||||
|
||||
// There are 3 independent teams that the player can control, depending on the game mode
|
||||
enum team_id {
|
||||
TEAM_MAIN = 0, // main team (GAME_MODE_NORMAL)
|
||||
TEAM_SPECIAL_EPISODE = 1, // team during a special episode (GAME_MODE_SPECIAL_EPISODE)
|
||||
TEAM_RESCUE = 2, // team during a Pelipper Island rescue (GAME_MODE_RESCUE)
|
||||
};
|
||||
|
||||
// Tactic ID. These are usually encoded as bitvectors.
|
||||
enum tactic_id {
|
||||
TACTIC_LETS_GO_TOGETHER = 0,
|
||||
|
||||
8
include/main_02058FA4.h
Normal file
8
include/main_02058FA4.h
Normal file
@@ -0,0 +1,8 @@
|
||||
#ifndef PMDSKY_MAIN_02058FA4_H
|
||||
#define PMDSKY_MAIN_02058FA4_H
|
||||
|
||||
#include "util.h"
|
||||
|
||||
bool8 ExplorerMazeMonsterExists(void);
|
||||
|
||||
#endif //PMDSKY_MAIN_02058FA4_H
|
||||
Reference in New Issue
Block a user