pmdsky-debug-py 10.0.49__py3-none-any.whl → 10.0.51__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
pmdsky_debug_py/jp.py CHANGED
@@ -3662,8 +3662,8 @@ class JpArm9Functions:
3662
3662
  )
3663
3663
 
3664
3664
  CopyAndInterleaveWrapper = Symbol(
3665
- None,
3666
- None,
3665
+ [0x1C048],
3666
+ [0x201C048],
3667
3667
  None,
3668
3668
  "CopyAndInterleaveWrapper",
3669
3669
  "Calls CopyAndInterleave with the passed len divided by 2.\n\nr0: dst\nr1: src\nr2: len (in bytes, will be divided by 2 in the call to CopyAndInterleave)\nr3: val",
@@ -5722,12 +5722,21 @@ class JpArm9Functions:
5722
5722
  None,
5723
5723
  )
5724
5724
 
5725
+ SetupAndShowKeyboard = Symbol(
5726
+ [0x36ACC],
5727
+ [0x2036ACC],
5728
+ None,
5729
+ "SetupAndShowKeyboard",
5730
+ "Calls a function that seems to set up info for the keyboard menu before ending with a call to ShowKeyboard.\n\nr0: menu type\nr1: buffer1\nr2: buffer2\nreturn: ?",
5731
+ None,
5732
+ )
5733
+
5725
5734
  ShowKeyboard = Symbol(
5726
5735
  [0x36B08],
5727
5736
  [0x2036B08],
5728
5737
  None,
5729
5738
  "ShowKeyboard",
5730
- "Note: unverified, ported from Irdkwia's notes\n\nr0: string ID\nr1: buffer1\nr2: ???\nr3: buffer2\nreturn: ?",
5739
+ "Note: unverified, ported from Irdkwia's notes\n\nr0: menu type\nr1: buffer1\nr2: ???\nr3: buffer2\nreturn: ?",
5731
5740
  None,
5732
5741
  )
5733
5742
 
@@ -7810,6 +7819,15 @@ class JpArm9Functions:
7810
7819
  None,
7811
7820
  )
7812
7821
 
7822
+ SetBaseStatsMovesGroundMonster = Symbol(
7823
+ [0x53234],
7824
+ [0x2053234],
7825
+ None,
7826
+ "SetBaseStatsMovesGroundMonster",
7827
+ "Sets a ground monster to have the base stats and Level 1 moves of its species, along with 1 IQ.\n\nr0: ground monster pointer",
7828
+ None,
7829
+ )
7830
+
7813
7831
  StrcmpMonsterName = Symbol(
7814
7832
  [0x532E8],
7815
7833
  [0x20532E8],
@@ -7945,6 +7963,15 @@ class JpArm9Functions:
7945
7963
  None,
7946
7964
  )
7947
7965
 
7966
+ ApplyLevelUpBoostsToGroundMonster = Symbol(
7967
+ [0x54800],
7968
+ [0x2054800],
7969
+ None,
7970
+ "ApplyLevelUpBoostsToGroundMonster",
7971
+ "Applies the level up boosts to stats and moves (until moveset is full) to a target monster.\n\nr0: ground monster pointer\nr1: level\nr2: flag that enables further editing of the monster",
7972
+ None,
7973
+ )
7974
+
7948
7975
  GetMonsterGenderVeneer = Symbol(
7949
7976
  [0x54A98],
7950
7977
  [0x2054A98],
@@ -18612,6 +18639,42 @@ class JpOverlay10Section:
18612
18639
 
18613
18640
  class JpOverlay11Functions:
18614
18641
 
18642
+ InitScriptRoutineState = Symbol(
18643
+ [0x5F0],
18644
+ [0x22DDED0],
18645
+ None,
18646
+ "InitScriptRoutineState",
18647
+ "Initializes the various fields of script_routine_state, a struct that seems relevant when handling script opcode operations.\n\nr0: script_routine_state pointer",
18648
+ None,
18649
+ )
18650
+
18651
+ InitScriptRoutine = Symbol(
18652
+ [0x6A8],
18653
+ [0x22DDF88],
18654
+ None,
18655
+ "InitScriptRoutine",
18656
+ "Initializes the various fields of script_routine.\n\nr0: routine pointer\nr1: ground entity function table pointer\nr2: live entity pointer",
18657
+ None,
18658
+ )
18659
+
18660
+ LockRoutine = Symbol(
18661
+ [0xCAC],
18662
+ [0x22DE58C],
18663
+ None,
18664
+ "LockRoutine",
18665
+ "Sets a routine to be locked via the Lock opcode.\n\nr0: script routine pointer\nr1: lock id\nreturn: Always 1, but this does seem to get checked in RunNextOpcode for some reason",
18666
+ None,
18667
+ )
18668
+
18669
+ UnlockRoutine = Symbol(
18670
+ [0xEAC],
18671
+ [0x22DE78C],
18672
+ None,
18673
+ "UnlockRoutine",
18674
+ "Attempts to unlock a script routine via the Unlock opcode.\n\nr0: script routine pointer\nr1: lock id\nreturn: True if the script routine was successfully unlocked",
18675
+ None,
18676
+ )
18677
+
18615
18678
  UnlockScriptingLock = Symbol(
18616
18679
  [0xEF0],
18617
18680
  [0x22DE7D0],
@@ -18626,7 +18689,7 @@ class JpOverlay11Functions:
18626
18689
  [0x22DE804],
18627
18690
  None,
18628
18691
  "FuncThatCallsRunNextOpcode",
18629
- "Called up to 16 times per frame. Exact purpose unknown.\n\nr0: Looks like a pointer to some struct containing data about the current state of scripting engine",
18692
+ "Called up to 16 times per frame. Exact purpose unknown.\n\nr0: script routine pointer",
18630
18693
  None,
18631
18694
  )
18632
18695
 
@@ -18635,7 +18698,16 @@ class JpOverlay11Functions:
18635
18698
  [0x22DF404],
18636
18699
  None,
18637
18700
  "RunNextOpcode",
18638
- "Runs the next scripting opcode.\n\nContains a switch statement based on the opcode ([r0+1C]).\n\nr0: Looks like a pointer to some struct containing data about the current state of scripting engine",
18701
+ "Runs the next scripting opcode.\n\nContains a switch statement based on the routine's next opcode to run.\n\nr0: script routine pointer\nreturn: status",
18702
+ None,
18703
+ )
18704
+
18705
+ GetSsbString = Symbol(
18706
+ [0x7F94],
18707
+ [0x22E5874],
18708
+ None,
18709
+ "GetSsbString",
18710
+ "Returns a string from a given SSB runtime struct.\n\nr0: ssb runtime info pointer\nr1: idx",
18639
18711
  None,
18640
18712
  )
18641
18713
 
@@ -18648,6 +18720,15 @@ class JpOverlay11Functions:
18648
18720
  None,
18649
18721
  )
18650
18722
 
18723
+ ScriptCaseProcess = Symbol(
18724
+ [0x8134],
18725
+ [0x22E5A14],
18726
+ None,
18727
+ "ScriptCaseProcess",
18728
+ "Calculates the next opcode address for a script routine as the result of a switch-statement.\n\nr0: script routine pointer\nr1: case id\nreturn: Next opcode address for the routine to execute",
18729
+ None,
18730
+ )
18731
+
18651
18732
  LoadFileFromRomVeneer = Symbol(
18652
18733
  [0x8428],
18653
18734
  [0x22E5D08],
@@ -18957,6 +19038,15 @@ class JpOverlay11Functions:
18957
19038
  None,
18958
19039
  )
18959
19040
 
19041
+ UnlockMainRoutine = Symbol(
19042
+ [0x1B3F4],
19043
+ [0x22F8CD4],
19044
+ None,
19045
+ "UnlockMainRoutine",
19046
+ "Unlocks the main routine of the current script, as specified in GROUND_STATE_PTRS::main_routine.\n\nr0: lock id\nreturn: True if the script routine was successfully unlocked",
19047
+ None,
19048
+ )
19049
+
18960
19050
  AllocAndInitPartnerFollowDataAndLiveActorList = Symbol(
18961
19051
  [0x1BA60],
18962
19052
  [0x22F9340],
@@ -18971,7 +19061,16 @@ class JpOverlay11Functions:
18971
19061
  [0x22F939C],
18972
19062
  None,
18973
19063
  "InitPartnerFollowDataAndLiveActorList",
18974
- "Initialize the partner follow data and the live actor list (in GROUND_STATE_PTRS, doesnt perform the allocation of the structures)\n\nNo params.",
19064
+ "Initialize the partner follow data and the live actor list (in GROUND_STATE_PTRS, doesn't perform the allocation of the structures)\n\nNo params.",
19065
+ None,
19066
+ )
19067
+
19068
+ GetLiveActorIdxFromScriptEntityId = Symbol(
19069
+ [0x1BBB4],
19070
+ [0x22F9494],
19071
+ None,
19072
+ "GetLiveActorIdxFromScriptEntityId",
19073
+ "Searches through the live actor list to find the first matching actor who has an ID matching that of a script_entity_id.\n\nr0: script_entity_id\nreturn: index of the live actor, or -1 if the specified actor could not be found",
18975
19074
  None,
18976
19075
  )
18977
19076
 
@@ -18980,7 +19079,43 @@ class JpOverlay11Functions:
18980
19079
  [0x22F9BFC],
18981
19080
  None,
18982
19081
  "DeleteLiveActor",
18983
- "Remove the actor from the overworld actor list (in GROUND_STATE_PTRS)\n\nr0: the index of the actor in the live actor list",
19082
+ "Remove the actor from the actor list (in GROUND_STATE_PTRS)\n\nr0: the index of the actor in the live actor list",
19083
+ None,
19084
+ )
19085
+
19086
+ SetAttributeBitfieldLiveActor = Symbol(
19087
+ [0x1C4D0],
19088
+ [0x22F9DB0],
19089
+ None,
19090
+ "SetAttributeBitfieldLiveActor",
19091
+ "Sets bits of the attribute bitfield of a currently loaded actor.\n\nr0: live actor id\nr1: attribute bitfield",
19092
+ None,
19093
+ )
19094
+
19095
+ ResetAttributeBitfieldLiveActor = Symbol(
19096
+ [0x1C55C],
19097
+ [0x22F9E3C],
19098
+ None,
19099
+ "ResetAttributeBitfieldLiveActor",
19100
+ "Clears bits of the attribute bitfield of a currently loaded actor.\n\nr0: live actor id\nr1: attribute bitfield",
19101
+ None,
19102
+ )
19103
+
19104
+ UnlockActorRoutines = Symbol(
19105
+ [0x1CDBC],
19106
+ [0x22FA69C],
19107
+ None,
19108
+ "UnlockActorRoutines",
19109
+ "Attempts to unlock all live actor routines of the current script.\n\nr0: lock id\nreturn: True if any script routine was successfully unlocked",
19110
+ None,
19111
+ )
19112
+
19113
+ GetCollidingActorId = Symbol(
19114
+ [0x1CF24],
19115
+ [0x22FA804],
19116
+ None,
19117
+ "GetCollidingActorId",
19118
+ "Returns the first colliding actor given a series of vector coordinates.\n\nr0: live actor id (used only to ignore an actor colliding with itself)\nr1: attribute bitfield to test actors against\nr2: pointer to coord_min\nr3: pointer to coord_max\nreturn: The first colliding actor's id, or -1 if no is collision detected",
18984
19119
  None,
18985
19120
  )
18986
19121
 
@@ -18989,279 +19124,900 @@ class JpOverlay11Functions:
18989
19124
  [0x22FAA4C],
18990
19125
  None,
18991
19126
  "ChangeActorAnimation",
18992
- "Used by the SetAnimation opcode to change the animation of an actor.\n\nIt's responsible for breaking down the SetAnimation parameter and determining which animation to play and which flags to set.\n\nr0: ?\nr1: SetAnimation parameter",
19127
+ "Used by the SetAnimation opcode to change the animation of an actor.\n\nIt's responsible for breaking down the SetAnimation parameter and determining which animation to play and which flags to set.\n\nr0: live actor\nr1: SetAnimation parameter",
18993
19128
  None,
18994
19129
  )
18995
19130
 
18996
- InitPartnerFollowData = Symbol(
18997
- [0x1F7CC],
18998
- [0x22FD0AC],
19131
+ SetPositionLiveActor = Symbol(
19132
+ [0x1D2CC],
19133
+ [0x22FABAC],
18999
19134
  None,
19000
- "InitPartnerFollowData",
19001
- "Initialize the partner follow data structure, without allocating it (in GROUND_STATE_PTRS)\n\nNo params.",
19135
+ "SetPositionLiveActor",
19136
+ "Sets the position for a currently loaded actor.\n\nr0: live actor\nr1: pointer to a position vector",
19002
19137
  None,
19003
19138
  )
19004
19139
 
19005
- GetDirectionLiveActor = Symbol(
19006
- [0x20F40],
19007
- [0x22FE820],
19140
+ GetIdLiveActor = Symbol(
19141
+ [0x1E7A8],
19142
+ [0x22FC088],
19008
19143
  None,
19009
- "GetDirectionLiveActor",
19010
- "Put the direction of the actor in the destination\n\nr0: live actor\nr1: destination address (1 byte)",
19144
+ "GetIdLiveActor",
19145
+ "Returns the ID of a currently loaded actor. This ID can then be used to index GROUND_STATE_PTRS::actors.\n\nr0: live actor\nreturn: id",
19011
19146
  None,
19012
19147
  )
19013
19148
 
19014
- SetDirectionLiveActor = Symbol(
19015
- [0x20F50],
19016
- [0x22FE830],
19149
+ GetCollisionBoxLiveActor = Symbol(
19150
+ [0x1E7B0],
19151
+ [0x22FC090],
19017
19152
  None,
19018
- "SetDirectionLiveActor",
19019
- "Store the direction in the actor structure\n-1 input is ignored\nUnsure if this change the animation\n\nr0: live actor\nr1: direction",
19153
+ "GetCollisionBoxLiveActor",
19154
+ "Gets the collision box of a currently loaded actor.\n\nr0: live actor\nr1: [output] collision box buffer",
19020
19155
  None,
19021
19156
  )
19022
19157
 
19023
- CreateTeamInfoBox = Symbol(
19024
- [0x22C1C],
19025
- [0x23004FC],
19158
+ SetPositionInitialLiveActor = Symbol(
19159
+ [0x1E7C4],
19160
+ [0x22FC0A4],
19026
19161
  None,
19027
- "CreateTeamInfoBox",
19028
- "Creates a window containing team information (rank and money carried) for the top-level menu in ground mode. Also see struct team_info_box.\n\nThe new window will always default to TEAM_INFO_BOX_DEFAULT_WINDOW_PARAMS.\n\nreturn: window_id",
19162
+ "SetPositionInitialLiveActor",
19163
+ "Sets a currently loaded actor to return to its initial position.\n\nr0: live actor\nr1: pointer to an position vector; if null, actor will return to its initial position",
19029
19164
  None,
19030
19165
  )
19031
19166
 
19032
- CloseTeamInfoBox = Symbol(
19033
- [0x22CD4],
19034
- [0x23005B4],
19167
+ SetMovementRangeLiveActor = Symbol(
19168
+ [0x1E880],
19169
+ [0x22FC160],
19035
19170
  None,
19036
- "CloseTeamInfoBox",
19037
- "Closes a window created with CreateTeamInfoBox.\n\nr0: window_id",
19171
+ "SetMovementRangeLiveActor",
19172
+ "Sets a currently loaded actor's random movement range.\n\nr0: live actor\nr1: pointer to limit_min_pos\nr2: pointer to limit_max_pos",
19038
19173
  None,
19039
19174
  )
19040
19175
 
19041
- IsTeamInfoBoxActive = Symbol(
19042
- [0x22D0C],
19043
- [0x23005EC],
19176
+ GetCollisionBoxCenterLiveActor = Symbol(
19177
+ [0x1E8A4],
19178
+ [0x22FC184],
19044
19179
  None,
19045
- "IsTeamInfoBoxActive",
19046
- "This is a guess.\n\nChecks if the state of a team info box is not 5.\n\nr0: window_id\nreturn: bool",
19180
+ "GetCollisionBoxCenterLiveActor",
19181
+ "Gets the center of a collision box of a currently loaded actor.\n\nThis simply adds the actor's minimum coordinates by half the size of the actor's collision box.\n\nr0: live actor\nr1: [output] collision box center buffer",
19047
19182
  None,
19048
19183
  )
19049
19184
 
19050
- UpdateTeamInfoBox = Symbol(
19051
- [0x22D2C],
19052
- [0x230060C],
19185
+ SetPositionLiveActorVeneer = Symbol(
19186
+ [0x1E8C8],
19187
+ [0x22FC1A8],
19053
19188
  None,
19054
- "UpdateTeamInfoBox",
19055
- "Window update function for team info boxes.\n\nr0: window pointer",
19189
+ "SetPositionLiveActorVeneer",
19190
+ "Likely a linker-generated veneer for SetPositionLiveActor.\n\nSee https://developer.arm.com/documentation/dui0474/k/image-structure-and-generation/linker-generated-veneers/what-is-a-veneer-\n\nr0: live actor\nr1: pointer to a position vector",
19056
19191
  None,
19057
19192
  )
19058
19193
 
19059
- CreateTopGroundMenu = Symbol(
19060
- [0x24AFC],
19061
- [0x23023DC],
19194
+ GetHeightLiveActor = Symbol(
19195
+ [0x1E8D4],
19196
+ [0x22FC1B4],
19062
19197
  None,
19063
- "CreateTopGroundMenu",
19064
- "Creates a parent menu (containing Items, Team, etc.) and two other windows upon pressing X in the overworld.\n\nreturn: always 1",
19198
+ "GetHeightLiveActor",
19199
+ "Gets the two height values of a currently loaded actor.\n\nr0: live actor\nr1: [output] pointer to first height value\nr2: [output] pointer to second height value, which is curiously not referenced by SetHeightLiveActor",
19065
19200
  None,
19066
19201
  )
19067
19202
 
19068
- CloseTopGroundMenu = Symbol(
19069
- [0x24C68],
19070
- [0x2302548],
19203
+ SetHeightLiveActor = Symbol(
19204
+ [0x1E8E8],
19205
+ [0x22FC1C8],
19071
19206
  None,
19072
- "CloseTopGroundMenu",
19073
- "Closes the three windows created by CreateOverworldMenu.\n\nNo params.",
19207
+ "SetHeightLiveActor",
19208
+ "Sets the height of a currently loaded actor.\n\nr0: live actor\nr1: height",
19074
19209
  None,
19075
19210
  )
19076
19211
 
19077
- UpdateTopGroundMenu = Symbol(
19078
- [0x24CC4],
19079
- [0x23025A4],
19212
+ GetDirectionLiveActor = Symbol(
19213
+ [0x1E8F0],
19214
+ [0x22FC1D0],
19080
19215
  None,
19081
- "UpdateTopGroundMenu",
19082
- "Window update function for the top-level ground mode menu.\n\nreturn: status code",
19216
+ "GetDirectionLiveActor",
19217
+ "Gets the direction of a currently loaded actor.\n\nr0: live actor\nr1: [output] pointer to direction",
19083
19218
  None,
19084
19219
  )
19085
19220
 
19086
- IsBagNotEmpty = Symbol(
19087
- [0x28848],
19088
- [0x2306128],
19221
+ SetDirectionLiveActor = Symbol(
19222
+ [0x1E900],
19223
+ [0x22FC1E0],
19089
19224
  None,
19090
- "IsBagNotEmpty",
19091
- "Checks if the bag has at least one valid item. Notably used in CreateTopGroundMenu to decide if the 'Items' option should be enabled.\n\nreturn: bool",
19225
+ "SetDirectionLiveActor",
19226
+ "Sets the direction of a currently loaded actor. Does nothing if the direction value passed is -1.\n\nr0: live actor\nr1: direction",
19092
19227
  None,
19093
19228
  )
19094
19229
 
19095
- SprintfStatic = Symbol(
19096
- [0x2CB98],
19097
- [0x230A478],
19230
+ SetAnimationLiveActor = Symbol(
19231
+ [0x1E928],
19232
+ [0x22FC208],
19098
19233
  None,
19099
- "SprintfStatic",
19100
- "Statically defined copy of sprintf(3) in overlay 11. See arm9.yml for more information.\n\nr0: str\nr1: format\n...: variadic\nreturn: number of characters printed, excluding the null-terminator",
19234
+ "SetAnimationLiveActor",
19235
+ "Sets the animation of a currently loaded actor. Leads up to a final ChangeActorAnimation call.\n\nIncludes a check for if live_actor::id is less than 3 and if live_actor::field_0xa is equal to 0x119, which ultimately may perform ((SetAnimation parameter) & 0x1f00 | 0x53).\n\nr0: live actor\nr1: SetAnimation parameter",
19101
19236
  None,
19102
19237
  )
19103
19238
 
19104
- GetExclusiveItemRequirements = Symbol(
19105
- [0x2EBFC],
19106
- [0x230C4DC],
19239
+ SetEffectLiveActor = Symbol(
19240
+ [0x1E974],
19241
+ [0x22FC254],
19107
19242
  None,
19108
- "GetExclusiveItemRequirements",
19109
- "Used to calculate the items required to get a certain exclusive item in the swap shop.\n\nr0: ?\nr1: ?",
19243
+ "SetEffectLiveActor",
19244
+ "Sets the effect of a currently loaded actor.\n\nr0: live actor\nr1: flag (true if effect id is 0?)\nr2: effect id\nr3: effect position marker",
19110
19245
  None,
19111
19246
  )
19112
19247
 
19113
- HandleControlsTopScreenGround = Symbol(
19114
- [0x322E4],
19115
- [0x230FBC4],
19248
+ GetAnimationStatusLiveActor = Symbol(
19249
+ [0x1E988],
19250
+ [0x22FC268],
19116
19251
  None,
19117
- "HandleControlsTopScreenGround",
19118
- "Handles the controls top screen display in the overworld.\n\nFor some reason the implementation seems considerably jankier in ground mode. In dungeon mode there's this structure for the top screen that has handlers for creating, updating and closing the various top screen layouts in a sort of polymorphic way. Here there's just a separate function for every layout that gets called every frame and seems to have a switch-case to handle everything about it.\n\nNo params.",
19252
+ "GetAnimationStatusLiveActor",
19253
+ "Gets the animation status of a currently loaded actor.\n\nUsed to determine if the animation has finished via script opcodes like WaitAnimation and WaitEndAnimation.\n\nr0: live actor\nreturn: status",
19119
19254
  None,
19120
19255
  )
19121
19256
 
19122
- GetDungeonMapPos = Symbol(
19123
- [0x32A14],
19124
- [0x23102F4],
19257
+ GetEffectStatusLiveActor = Symbol(
19258
+ [0x1E9A8],
19259
+ [0x22FC288],
19125
19260
  None,
19126
- "GetDungeonMapPos",
19127
- "Checks if a dungeon should be displayed on the map and the position where it should be displayed if so.\n\nr0: [Output] Buffer where the coordinates of the map marker will be stored. The coordinates are shifted 8 bits to the left, so they are probably fixed-point numbers instead of integers.\nr1: Dungeon ID\nreturn: True if the dungeon should be displayed on the map, false otherwise.",
19261
+ "GetEffectStatusLiveActor",
19262
+ "Gets the effect status of a currently loaded actor.\n\nUsed to determine if an effect has finished via the script opcode WaitEffect.\n\nr0: live actor\nreturn: status",
19128
19263
  None,
19129
19264
  )
19130
19265
 
19131
- WorldMapSetMode = Symbol(
19132
- [0x32CD0],
19133
- [0x23105B0],
19266
+ GetAttributeBitfieldLiveActor = Symbol(
19267
+ [0x1E9CC],
19268
+ [0x22FC2AC],
19134
19269
  None,
19135
- "WorldMapSetMode",
19136
- "Function called by the script function 'worldmap_SetMode'\nDefine the mode of the world map, which can among other things be used to decide if the player character should appear on the world map\nThe mode is set even if no world map is set\n\nr0: world map mode",
19270
+ "GetAttributeBitfieldLiveActor",
19271
+ "Gets the attribute bitfield of a currently loaded actor.\n\nr0: live actor\nr1: [output] pointer to attribute bitfield",
19137
19272
  None,
19138
19273
  )
19139
19274
 
19140
- WorldMapSetCamera = Symbol(
19141
- [0x32D90],
19142
- [0x2310670],
19275
+ SetAttributeBitfieldLiveActorWrapper = Symbol(
19276
+ [0x1E9D8],
19277
+ [0x22FC2B8],
19143
19278
  None,
19144
- "WorldMapSetCamera",
19145
- "Function called with the script function 'worldmap_SetCamera'.\nSet the map marker the world map should try to center on (while still ensuring it doesn't go over the background border)\nHas no effect if no map is currently set\n\nr0: map marker id",
19279
+ "SetAttributeBitfieldLiveActorWrapper",
19280
+ "Sets bits of the attribute bitfield of a currently loaded actor.\n\nIs a wrapper around SetAttributeBitfieldLiveActor, meaning this calls SetAttributeBitfieldLiveActor with a first parameter of live_actor::id.\n\nr0: live actor\nr1: attribute bitfield",
19146
19281
  None,
19147
19282
  )
19148
19283
 
19149
- StatusUpdate = Symbol(
19150
- [0x3771C],
19151
- [0x2314FFC],
19284
+ ResetAttributeBitfieldLiveActorWrapper = Symbol(
19285
+ [0x1E9E8],
19286
+ [0x22FC2C8],
19152
19287
  None,
19153
- "StatusUpdate",
19154
- "Implements SPECIAL_PROC_STATUS_UPDATE (see ScriptSpecialProcessCall).\n\nNo params.",
19288
+ "ResetAttributeBitfieldLiveActorWrapper",
19289
+ "Clears bits of the attribute bitfield of a currently loaded actor.\n\nIs a wrapper around ResetAttributeBitfieldLiveActor, meaning this calls ResetAttributeBitfieldLiveActor with a first parameter of live_actor::id.\n\nr0: live actor\nr1: attribute bitfield",
19155
19290
  None,
19156
19291
  )
19157
19292
 
19158
- HandleTeamStatsGround = Symbol(
19159
- [0x37760],
19160
- [0x2315040],
19293
+ SetBlinkLiveActor = Symbol(
19294
+ [0x1E9F8],
19295
+ [0x22FC2D8],
19161
19296
  None,
19162
- "HandleTeamStatsGround",
19163
- "Handles the team stats top screen display in the overworld.\n\nFor some reason the implementation seems considerably jankier in ground mode. In dungeon mode there's this structure for the top screen that has handlers for creating, updating and closing the various top screen layouts in a sort of polymorphic way. Here there's just a separate function for every layout that gets called every frame and seems to have a switch-case to handle everything about it.\n\nNo params.",
19297
+ "SetBlinkLiveActor",
19298
+ "Sets the actor to blink in and out of sight at certain intervals.\n\nr0: live actor\nr1: frame interval for blinking in\nr2: frame interval for blinking out",
19164
19299
  None,
19165
19300
  )
19166
19301
 
19167
- ProcessScriptParam = _Deprecated("ProcessScriptParam", ScriptParamToInt)
19302
+ SetPositionOffsetLiveActor = Symbol(
19303
+ [0x1EA08],
19304
+ [0x22FC2E8],
19305
+ None,
19306
+ "SetPositionOffsetLiveActor",
19307
+ "Offsets a currently loaded actor's position.\n\nr0: live actor\nr1: pointer to an position offset vector",
19308
+ None,
19309
+ )
19168
19310
 
19311
+ InitPartnerFollowData = Symbol(
19312
+ [0x1F7CC],
19313
+ [0x22FD0AC],
19314
+ None,
19315
+ "InitPartnerFollowData",
19316
+ "Initialize the partner follow data structure, without allocating it (in GROUND_STATE_PTRS)\n\nNo params.",
19317
+ None,
19318
+ )
19169
19319
 
19170
- class JpOverlay11Data:
19320
+ DeleteLiveObject = Symbol(
19321
+ [0x201E4],
19322
+ [0x22FDAC4],
19323
+ None,
19324
+ "DeleteLiveObject",
19325
+ "Remove the object from the object list (in GROUND_STATE_PTRS)\n\nr0: the index of the object in the live object list",
19326
+ None,
19327
+ )
19171
19328
 
19172
- OVERLAY11_UNKNOWN_TABLE__NA_2316A38 = Symbol(
19329
+ SetAttributeBitfieldLiveObject = Symbol(
19330
+ [0x20390],
19331
+ [0x22FDC70],
19173
19332
  None,
19333
+ "SetAttributeBitfieldLiveObject",
19334
+ "Sets bits of the attribute bitfield of a currently loaded object.\n\nr0: live object id\nr1: attribute bitfield",
19335
+ None,
19336
+ )
19337
+
19338
+ ResetAttributeBitfieldLiveObject = Symbol(
19339
+ [0x203D0],
19340
+ [0x22FDCB0],
19174
19341
  None,
19342
+ "ResetAttributeBitfieldLiveObject",
19343
+ "Clears bits of the attribute bitfield of a currently loaded object.\n\nr0: live object id\nr1: attribute bitfield",
19175
19344
  None,
19176
- "OVERLAY11_UNKNOWN_TABLE__NA_2316A38",
19177
- "Multiple entries are pointers to the string 'script.c'\n\nNote: unverified, ported from Irdkwia's notes\n\ntype: undefined4[40]",
19178
- "",
19179
19345
  )
19180
19346
 
19181
- SCRIPT_COMMAND_PARSING_DATA = Symbol(
19182
- [0x3A75C],
19183
- [0x231803C],
19347
+ UnlockObjectRoutines = Symbol(
19348
+ [0x209DC],
19349
+ [0x22FE2BC],
19350
+ None,
19351
+ "UnlockObjectRoutines",
19352
+ "Attempts to unlock all live object routines of the current script.\n\nr0: lock id\nreturn: True if any script routine was successfully unlocked",
19184
19353
  None,
19185
- "SCRIPT_COMMAND_PARSING_DATA",
19186
- "Used by ScriptCommandParsing somehow",
19187
- "undefined[32]",
19188
19354
  )
19189
19355
 
19190
- SCRIPT_OP_CODE_NAMES = Symbol(
19191
- [0x3A77C],
19192
- [0x231805C],
19356
+ GetCollidingObjectId = Symbol(
19357
+ [0x20AB0],
19358
+ [0x22FE390],
19359
+ None,
19360
+ "GetCollidingObjectId",
19361
+ "Returns the first colliding object given a series of vector coordinates.\n\nr0: attribute bitfield to test objects against\nr1: pointer to coord_min\nr2: pointer to coord_max\nreturn: The first colliding object's id, or -1 if no is collision detected",
19193
19362
  None,
19194
- "SCRIPT_OP_CODE_NAMES",
19195
- "Opcode name strings pointed to by entries in SCRIPT_OP_CODES (script_opcode::name)",
19196
- "char[0]",
19197
19363
  )
19198
19364
 
19199
- SCRIPT_OP_CODES = Symbol(
19200
- [0x3C294],
19201
- [0x2319B74],
19202
- 0xBF8,
19203
- "SCRIPT_OP_CODES",
19204
- "Table of opcodes for the script engine. There are 383 8-byte entries.\n\nThese opcodes underpin the various ExplorerScript functions you can call in the SkyTemple SSB debugger.\n\ntype: struct script_opcode_table",
19205
- "struct script_opcode_table",
19365
+ SetPositionLiveObject = Symbol(
19366
+ [0x20D08],
19367
+ [0x22FE5E8],
19368
+ None,
19369
+ "SetPositionLiveObject",
19370
+ "Sets the position for a currently loaded object.\n\nr0: live object\nr1: pointer to a position vector",
19371
+ None,
19206
19372
  )
19207
19373
 
19208
- OVERLAY11_DEBUG_STRINGS = Symbol(
19209
- [0x3CE8C],
19210
- [0x231A76C],
19374
+ GetIdLiveObject = Symbol(
19375
+ [0x20DF8],
19376
+ [0x22FE6D8],
19377
+ None,
19378
+ "GetIdLiveObject",
19379
+ "Returns the ID of a currently loaded object. This ID can then be used to index GROUND_STATE_PTRS::objects.\n\nr0: live object\nreturn: id",
19211
19380
  None,
19212
- "OVERLAY11_DEBUG_STRINGS",
19213
- "Strings used with various debug printing functions throughout the overlay",
19214
- "char[0]",
19215
19381
  )
19216
19382
 
19217
- C_ROUTINE_NAMES = Symbol(
19218
- [0x3D770],
19219
- [0x231B050],
19383
+ GetCollisionBoxLiveObject = Symbol(
19384
+ [0x20E00],
19385
+ [0x22FE6E0],
19386
+ None,
19387
+ "GetCollisionBoxLiveObject",
19388
+ "Gets the collision box of a currently loaded object.\n\nr0: live object\nr1: [output] collision box buffer",
19220
19389
  None,
19221
- "C_ROUTINE_NAMES",
19222
- "Common routine name strings pointed to by entries in C_ROUTINES (common_routine::name)",
19223
- "char[0]",
19224
19390
  )
19225
19391
 
19226
- C_ROUTINES = Symbol(
19227
- [0x404AC],
19228
- [0x231DD8C],
19229
- 0x15E8,
19230
- "C_ROUTINES",
19231
- "Common routines used within the unionall.ssb script (the master script). There are 701 8-byte entries.\n\nThese routines underpin the ExplorerScript coroutines you can call in the SkyTemple SSB debugger.\n\ntype: struct common_routine_table",
19232
- "struct common_routine_table",
19392
+ SetPositionInitialLiveObject = Symbol(
19393
+ [0x20E14],
19394
+ [0x22FE6F4],
19395
+ None,
19396
+ "SetPositionInitialLiveObject",
19397
+ "Sets a currently loaded object to return to its initial position.\n\nr0: live object\nr1: pointer to an position vector; if null, object will return to its initial position",
19398
+ None,
19233
19399
  )
19234
19400
 
19235
- GROUND_WEATHER_TABLE = Symbol(
19236
- [0x41A94],
19237
- [0x231F374],
19401
+ SetMovementRangeLiveObject = Symbol(
19402
+ [0x20ED0],
19403
+ [0x22FE7B0],
19404
+ None,
19405
+ "SetMovementRangeLiveObject",
19406
+ "Sets a currently loaded object's random movement range.\n\nr0: live object\nr1: pointer to limit_min_pos\nr2: pointer to limit_max_pos",
19238
19407
  None,
19239
- "GROUND_WEATHER_TABLE",
19240
- "Note: unverified, ported from Irdkwia's notes\n\ntype: struct ground_weather_entry[12]",
19241
- "struct ground_weather_entry[12]",
19242
19408
  )
19243
19409
 
19244
- GROUND_WAN_FILES_TABLE = Symbol(
19245
- [0x41AC4],
19246
- [0x231F3A4],
19410
+ GetCollisionBoxCenterLiveObject = Symbol(
19411
+ [0x20EF4],
19412
+ [0x22FE7D4],
19413
+ None,
19414
+ "GetCollisionBoxCenterLiveObject",
19415
+ "Gets the center of a collision box of a currently loaded object.\n\nThis simply adds the object's minimum coordinates by half the size of the object's collision box.\n\nr0: live object\nr1: [output] collision box center buffer",
19247
19416
  None,
19248
- "GROUND_WAN_FILES_TABLE",
19249
- "Note: unverified, ported from Irdkwia's notes\n\ntype: char[343][12]",
19250
- "char[343][12]",
19251
19417
  )
19252
19418
 
19253
- OBJECTS = Symbol(
19254
- [0x42AD8],
19255
- [0x23203B8],
19256
- 0x1A04,
19257
- "OBJECTS",
19258
- "Table of objects for the script engine, which can be placed in scenes. There are a version-dependent number of 12-byte entries.\n\ntype: struct script_object[length / 12]",
19259
- "struct script_object[0]",
19419
+ SetPositionLiveObjectVeneer = Symbol(
19420
+ [0x20F18],
19421
+ [0x22FE7F8],
19422
+ None,
19423
+ "SetPositionLiveObjectVeneer",
19424
+ "Likely a linker-generated veneer for SetPositionLiveObject.\n\nSee https://developer.arm.com/documentation/dui0474/k/image-structure-and-generation/linker-generated-veneers/what-is-a-veneer-\n\nr0: live object\nr1: pointer to a position vector",
19425
+ None,
19260
19426
  )
19261
19427
 
19262
- RECRUITMENT_TABLE_LOCATIONS = Symbol(
19263
- [0x44518],
19264
- [0x2321DF8],
19428
+ GetHeightLiveObject = Symbol(
19429
+ [0x20F24],
19430
+ [0x22FE804],
19431
+ None,
19432
+ "GetHeightLiveObject",
19433
+ "Gets the two height values of a currently loaded object.\n\nr0: live object\nr1: [output] pointer to first height value\nr2: [output] pointer to second height value, which is curiously not referenced by SetHeightLiveObject",
19434
+ None,
19435
+ )
19436
+
19437
+ SetHeightLiveObject = Symbol(
19438
+ [0x20F38],
19439
+ [0x22FE818],
19440
+ None,
19441
+ "SetHeightLiveObject",
19442
+ "Sets the height of a currently loaded object.\n\nr0: live object\nr1: height",
19443
+ None,
19444
+ )
19445
+
19446
+ GetDirectionLiveObject = Symbol(
19447
+ [0x20F40],
19448
+ [0x22FE820],
19449
+ None,
19450
+ "GetDirectionLiveObject",
19451
+ "Gets the direction of a currently loaded object.\n\nr0: live object\nr1: [output] pointer to direction",
19452
+ None,
19453
+ )
19454
+
19455
+ SetDirectionLiveObject = Symbol(
19456
+ [0x20F50],
19457
+ [0x22FE830],
19458
+ None,
19459
+ "SetDirectionLiveObject",
19460
+ "Sets the direction of a currently loaded object. Does nothing if the direction value passed is -1.\n\nr0: live object\nr1: direction",
19461
+ None,
19462
+ )
19463
+
19464
+ SetAnimationLiveObject = Symbol(
19465
+ [0x20F60],
19466
+ [0x22FE840],
19467
+ None,
19468
+ "SetAnimationLiveObject",
19469
+ "Sets the animation of a currently loaded object.\n\nr0: live object\nr1: SetAnimation parameter",
19470
+ None,
19471
+ )
19472
+
19473
+ SetEffectLiveObject = Symbol(
19474
+ [0x21020],
19475
+ [0x22FE900],
19476
+ None,
19477
+ "SetEffectLiveObject",
19478
+ "Sets the effect of a currently loaded object.\n\nr0: live object\nr1: flag (true if effect id is 0?)\nr2: effect id",
19479
+ None,
19480
+ )
19481
+
19482
+ GetAnimationStatusLiveObject = Symbol(
19483
+ [0x21030],
19484
+ [0x22FE910],
19485
+ None,
19486
+ "GetAnimationStatusLiveObject",
19487
+ "Gets the animation status of a currently loaded object.\n\nUsed to determine if the animation has finished via script opcodes like WaitAnimation and WaitEndAnimation.\n\nr0: live object\nreturn: status",
19488
+ None,
19489
+ )
19490
+
19491
+ GetEffectStatusLiveObject = Symbol(
19492
+ [0x21050],
19493
+ [0x22FE930],
19494
+ None,
19495
+ "GetEffectStatusLiveObject",
19496
+ "Gets the effect status of a currently loaded object.\n\nUsed to determine if an effect has finished via the script opcode WaitEffect.\n\nr0: live object\nreturn: status",
19497
+ None,
19498
+ )
19499
+
19500
+ GetAttributeBitfieldLiveObject = Symbol(
19501
+ [0x21074],
19502
+ [0x22FE954],
19503
+ None,
19504
+ "GetAttributeBitfieldLiveObject",
19505
+ "Gets the attribute bitfield of a currently loaded object.\n\nr0: live object\nr1: [output] pointer to attribute bitfield",
19506
+ None,
19507
+ )
19508
+
19509
+ SetAttributeBitfieldLiveObjectWrapper = Symbol(
19510
+ [0x21080],
19511
+ [0x22FE960],
19512
+ None,
19513
+ "SetAttributeBitfieldLiveObjectWrapper",
19514
+ "Sets bits of the attribute bitfield of a currently loaded object.\n\nIs a wrapper around SetAttributeBitfieldLiveObject, meaning this calls SetAttributeBitfieldLiveObject with a first parameter of live_object::id.\n\nr0: live object\nr1: attribute bitfield",
19515
+ None,
19516
+ )
19517
+
19518
+ ResetAttributeBitfieldLiveObjectWrapper = Symbol(
19519
+ [0x21090],
19520
+ [0x22FE970],
19521
+ None,
19522
+ "ResetAttributeBitfieldLiveObjectWrapper",
19523
+ "Clears bits of the attribute bitfield of a currently loaded object.\n\nIs a wrapper around ResetAttributeBitfieldLiveObject, meaning this calls ResetAttributeBitfieldLiveObject with a first parameter of live_object::id.\n\nr0: live object\nr1: attribute bitfield",
19524
+ None,
19525
+ )
19526
+
19527
+ SetBlinkLiveObject = Symbol(
19528
+ [0x210A0],
19529
+ [0x22FE980],
19530
+ None,
19531
+ "SetBlinkLiveObject",
19532
+ "Sets the object to blink in and out of sight at certain intervals.\n\nr0: live object\nr1: frame interval for blinking in\nr2: frame interval for blinking out",
19533
+ None,
19534
+ )
19535
+
19536
+ SetPositionOffsetLiveObject = Symbol(
19537
+ [0x210B0],
19538
+ [0x22FE990],
19539
+ None,
19540
+ "SetPositionOffsetLiveObject",
19541
+ "Offsets a currently loaded object's position.\n\nr0: live object\nr1: pointer to an position offset vector",
19542
+ None,
19543
+ )
19544
+
19545
+ DeleteLivePerformer = Symbol(
19546
+ [0x2197C],
19547
+ [0x22FF25C],
19548
+ None,
19549
+ "DeleteLivePerformer",
19550
+ "Remove the performer from the performer list (in GROUND_STATE_PTRS)\n\nr0: the index of the performer in the live performer list",
19551
+ None,
19552
+ )
19553
+
19554
+ SetAttributeBitfieldLivePerformer = Symbol(
19555
+ [0x21B28],
19556
+ [0x22FF408],
19557
+ None,
19558
+ "SetAttributeBitfieldLivePerformer",
19559
+ "Sets bits of the attribute bitfield of a currently loaded performer.\n\nr0: live performer id\nr1: attribute bitfield",
19560
+ None,
19561
+ )
19562
+
19563
+ ResetAttributeBitfieldLivePerformer = Symbol(
19564
+ [0x21B68],
19565
+ [0x22FF448],
19566
+ None,
19567
+ "ResetAttributeBitfieldLivePerformer",
19568
+ "Clears bits of the attribute bitfield of a currently loaded performer.\n\nr0: live performer id\nr1: attribute bitfield",
19569
+ None,
19570
+ )
19571
+
19572
+ UnlockPerformerRoutines = Symbol(
19573
+ [0x220E4],
19574
+ [0x22FF9C4],
19575
+ None,
19576
+ "UnlockPerformerRoutines",
19577
+ "Attempts to unlock all live performer routines of the current script.\n\nr0: lock id\nreturn: True if any script routine was successfully unlocked",
19578
+ None,
19579
+ )
19580
+
19581
+ SetPositionLivePerformer = Symbol(
19582
+ [0x22194],
19583
+ [0x22FFA74],
19584
+ None,
19585
+ "SetPositionLivePerformer",
19586
+ "Sets the position for a currently loaded performer.\n\nr0: live performer\nr1: pointer to a position vector",
19587
+ None,
19588
+ )
19589
+
19590
+ GetIdLivePerformer = Symbol(
19591
+ [0x22220],
19592
+ [0x22FFB00],
19593
+ None,
19594
+ "GetIdLivePerformer",
19595
+ "Returns the ID of a currently loaded performer. This ID can then be used to index GROUND_STATE_PTRS::performers.\n\nr0: live performer\nreturn: id",
19596
+ None,
19597
+ )
19598
+
19599
+ GetCollisionBoxLivePerformer = Symbol(
19600
+ [0x22228],
19601
+ [0x22FFB08],
19602
+ None,
19603
+ "GetCollisionBoxLivePerformer",
19604
+ "Gets the collision box of a currently loaded performer.\n\nr0: live performer\nr1: [output] collision box buffer",
19605
+ None,
19606
+ )
19607
+
19608
+ SetPositionInitialLivePerformer = Symbol(
19609
+ [0x2223C],
19610
+ [0x22FFB1C],
19611
+ None,
19612
+ "SetPositionInitialLivePerformer",
19613
+ "Sets a currently loaded performer to return to its initial position.\n\nr0: live performer\nr1: pointer to an position vector; if null, performer will return to its initial position",
19614
+ None,
19615
+ )
19616
+
19617
+ SetMovementRangeLivePerformer = Symbol(
19618
+ [0x222F8],
19619
+ [0x22FFBD8],
19620
+ None,
19621
+ "SetMovementRangeLivePerformer",
19622
+ "Sets a currently loaded performer's random movement range.\n\nr0: live performer\nr1: pointer to limit_min_pos\nr2: pointer to limit_max_pos",
19623
+ None,
19624
+ )
19625
+
19626
+ GetCollisionBoxCenterLivePerformer = Symbol(
19627
+ [0x2231C],
19628
+ [0x22FFBFC],
19629
+ None,
19630
+ "GetCollisionBoxCenterLivePerformer",
19631
+ "Gets the center of a collision box of a currently loaded performer.\n\nThis simply adds the performer's minimum coordinates by half the size of the performer's collision box.\n\nr0: live performer\nr1: [output] collision box center buffer",
19632
+ None,
19633
+ )
19634
+
19635
+ SetPositionLivePerformerVeneer = Symbol(
19636
+ [0x22340],
19637
+ [0x22FFC20],
19638
+ None,
19639
+ "SetPositionLivePerformerVeneer",
19640
+ "Likely a linker-generated veneer for SetPositionLivePerformer.\n\nSee https://developer.arm.com/documentation/dui0474/k/image-structure-and-generation/linker-generated-veneers/what-is-a-veneer-\n\nr0: live performer\nr1: pointer to a position vector",
19641
+ None,
19642
+ )
19643
+
19644
+ GetHeightLivePerformer = Symbol(
19645
+ [0x2234C],
19646
+ [0x22FFC2C],
19647
+ None,
19648
+ "GetHeightLivePerformer",
19649
+ "Gets the two height values of a currently loaded performer.\n\nr0: live performer\nr1: [output] pointer to first height value\nr2: [output] pointer to second height value, which is curiously not referenced by SetHeightLivePerformer",
19650
+ None,
19651
+ )
19652
+
19653
+ SetHeightLivePerformer = Symbol(
19654
+ [0x22360],
19655
+ [0x22FFC40],
19656
+ None,
19657
+ "SetHeightLivePerformer",
19658
+ "Sets the height of a currently loaded performer.\n\nr0: live performer\nr1: height",
19659
+ None,
19660
+ )
19661
+
19662
+ GetDirectionLivePerformer = Symbol(
19663
+ [0x22368],
19664
+ [0x22FFC48],
19665
+ None,
19666
+ "GetDirectionLivePerformer",
19667
+ "Gets the direction of a currently loaded performer.\n\nr0: live performer\nr1: [output] pointer to direction",
19668
+ None,
19669
+ )
19670
+
19671
+ SetDirectionLivePerformer = Symbol(
19672
+ [0x22378],
19673
+ [0x22FFC58],
19674
+ None,
19675
+ "SetDirectionLivePerformer",
19676
+ "Sets the direction of a currently loaded performer. Does nothing if the direction value passed is -1.\n\nr0: live performer\nr1: direction",
19677
+ None,
19678
+ )
19679
+
19680
+ SetAnimationLivePerformer = Symbol(
19681
+ [0x22388],
19682
+ [0x22FFC68],
19683
+ None,
19684
+ "SetAnimationLivePerformer",
19685
+ "Sets the animation of a currently loaded performer.\n\nr0: live performer\nr1: SetAnimation parameter",
19686
+ None,
19687
+ )
19688
+
19689
+ SetEffectLivePerformer = Symbol(
19690
+ [0x22448],
19691
+ [0x22FFD28],
19692
+ None,
19693
+ "SetEffectLivePerformer",
19694
+ "Sets the effect of a currently loaded performer.\n\nr0: live performer\nr1: flag (true if effect id is 0?)\nr2: effect id",
19695
+ None,
19696
+ )
19697
+
19698
+ GetAnimationStatusLivePerformer = Symbol(
19699
+ [0x22458],
19700
+ [0x22FFD38],
19701
+ None,
19702
+ "GetAnimationStatusLivePerformer",
19703
+ "Gets the animation status of a currently loaded performer.\n\nUsed to determine if the animation has finished via script opcodes like WaitAnimation and WaitEndAnimation.\n\nr0: live performer\nreturn: status",
19704
+ None,
19705
+ )
19706
+
19707
+ GetEffectStatusLivePerformer = Symbol(
19708
+ [0x22478],
19709
+ [0x22FFD58],
19710
+ None,
19711
+ "GetEffectStatusLivePerformer",
19712
+ "Gets the effect status of a currently loaded performer.\n\nUsed to determine if an effect has finished via the script opcode WaitEffect.\n\nr0: live performer\nreturn: status",
19713
+ None,
19714
+ )
19715
+
19716
+ GetAttributeBitfieldLivePerformer = Symbol(
19717
+ [0x224B0],
19718
+ [0x22FFD90],
19719
+ None,
19720
+ "GetAttributeBitfieldLivePerformer",
19721
+ "Gets the attribute bitfield of a currently loaded performer.\n\nr0: live performer\nr1: [output] pointer to attribute bitfield",
19722
+ None,
19723
+ )
19724
+
19725
+ SetAttributeBitfieldLivePerformerWrapper = Symbol(
19726
+ [0x224BC],
19727
+ [0x22FFD9C],
19728
+ None,
19729
+ "SetAttributeBitfieldLivePerformerWrapper",
19730
+ "Sets bits of the attribute bitfield of a currently loaded performer.\n\nIs a wrapper around SetAttributeBitfieldLivePerformer, meaning this calls SetAttributeBitfieldLivePerformer with a first parameter of live_performer::id.\n\nr0: live performer\nr1: attribute bitfield",
19731
+ None,
19732
+ )
19733
+
19734
+ ResetAttributeBitfieldLivePerformerWrapper = Symbol(
19735
+ [0x224CC],
19736
+ [0x22FFDAC],
19737
+ None,
19738
+ "ResetAttributeBitfieldLivePerformerWrapper",
19739
+ "Clears bits of the attribute bitfield of a currently loaded performer.\n\nIs a wrapper around ResetAttributeBitfieldLivePerformer, meaning this calls ResetAttributeBitfieldLivePerformer with a first parameter of live_performer::id.\n\nr0: live performer\nr1: attribute bitfield",
19740
+ None,
19741
+ )
19742
+
19743
+ SetBlinkLivePerformer = Symbol(
19744
+ [0x224DC],
19745
+ [0x22FFDBC],
19746
+ None,
19747
+ "SetBlinkLivePerformer",
19748
+ "Sets the performer to blink in and out of sight at certain intervals.\n\nr0: live performer\nr1: frame interval for blinking in\nr2: frame interval for blinking out",
19749
+ None,
19750
+ )
19751
+
19752
+ SetPositionOffsetLivePerformer = Symbol(
19753
+ [0x224EC],
19754
+ [0x22FFDCC],
19755
+ None,
19756
+ "SetPositionOffsetLivePerformer",
19757
+ "Offsets a currently loaded performer's position.\n\nr0: live performer\nr1: pointer to an position offset vector",
19758
+ None,
19759
+ )
19760
+
19761
+ DeleteLiveEvent = Symbol(
19762
+ [0x229F0],
19763
+ [0x23002D0],
19764
+ None,
19765
+ "DeleteLiveEvent",
19766
+ "Remove the event from the event list (in GROUND_STATE_PTRS)\n\nr0: the index of the event in the live event list",
19767
+ None,
19768
+ )
19769
+
19770
+ GetCollidingEventId = Symbol(
19771
+ [0x22B80],
19772
+ [0x2300460],
19773
+ None,
19774
+ "GetCollidingEventId",
19775
+ "Returns the first colliding event given a series of vector coordinates.\n\nr0: attribute bitfield to test events against\nr1: pointer to coord_min\nr2: pointer to coord_max\nreturn: The first colliding event's id, or -1 if no is collision detected",
19776
+ None,
19777
+ )
19778
+
19779
+ CreateTeamInfoBox = Symbol(
19780
+ [0x22C1C],
19781
+ [0x23004FC],
19782
+ None,
19783
+ "CreateTeamInfoBox",
19784
+ "Creates a window containing team information (rank and money carried) for the top-level menu in ground mode. Also see struct team_info_box.\n\nThe new window will always default to TEAM_INFO_BOX_DEFAULT_WINDOW_PARAMS.\n\nreturn: window_id",
19785
+ None,
19786
+ )
19787
+
19788
+ CloseTeamInfoBox = Symbol(
19789
+ [0x22CD4],
19790
+ [0x23005B4],
19791
+ None,
19792
+ "CloseTeamInfoBox",
19793
+ "Closes a window created with CreateTeamInfoBox.\n\nr0: window_id",
19794
+ None,
19795
+ )
19796
+
19797
+ IsTeamInfoBoxActive = Symbol(
19798
+ [0x22D0C],
19799
+ [0x23005EC],
19800
+ None,
19801
+ "IsTeamInfoBoxActive",
19802
+ "This is a guess.\n\nChecks if the state of a team info box is not 5.\n\nr0: window_id\nreturn: bool",
19803
+ None,
19804
+ )
19805
+
19806
+ UpdateTeamInfoBox = Symbol(
19807
+ [0x22D2C],
19808
+ [0x230060C],
19809
+ None,
19810
+ "UpdateTeamInfoBox",
19811
+ "Window update function for team info boxes.\n\nr0: window pointer",
19812
+ None,
19813
+ )
19814
+
19815
+ CreateTopGroundMenu = Symbol(
19816
+ [0x24AFC],
19817
+ [0x23023DC],
19818
+ None,
19819
+ "CreateTopGroundMenu",
19820
+ "Creates a parent menu (containing Items, Team, etc.) and two other windows upon pressing X in the overworld.\n\nreturn: always 1",
19821
+ None,
19822
+ )
19823
+
19824
+ CloseTopGroundMenu = Symbol(
19825
+ [0x24C68],
19826
+ [0x2302548],
19827
+ None,
19828
+ "CloseTopGroundMenu",
19829
+ "Closes the three windows created by CreateOverworldMenu.\n\nNo params.",
19830
+ None,
19831
+ )
19832
+
19833
+ UpdateTopGroundMenu = Symbol(
19834
+ [0x24CC4],
19835
+ [0x23025A4],
19836
+ None,
19837
+ "UpdateTopGroundMenu",
19838
+ "Window update function for the top-level ground mode menu.\n\nreturn: status code",
19839
+ None,
19840
+ )
19841
+
19842
+ IsBagNotEmpty = Symbol(
19843
+ [0x28848],
19844
+ [0x2306128],
19845
+ None,
19846
+ "IsBagNotEmpty",
19847
+ "Checks if the bag has at least one valid item. Notably used in CreateTopGroundMenu to decide if the 'Items' option should be enabled.\n\nreturn: bool",
19848
+ None,
19849
+ )
19850
+
19851
+ SprintfStatic = Symbol(
19852
+ [0x2CB98],
19853
+ [0x230A478],
19854
+ None,
19855
+ "SprintfStatic",
19856
+ "Statically defined copy of sprintf(3) in overlay 11. See arm9.yml for more information.\n\nr0: str\nr1: format\n...: variadic\nreturn: number of characters printed, excluding the null-terminator",
19857
+ None,
19858
+ )
19859
+
19860
+ GetExclusiveItemRequirements = Symbol(
19861
+ [0x2EBFC],
19862
+ [0x230C4DC],
19863
+ None,
19864
+ "GetExclusiveItemRequirements",
19865
+ "Used to calculate the items required to get a certain exclusive item in the swap shop.\n\nr0: ?\nr1: ?",
19866
+ None,
19867
+ )
19868
+
19869
+ HandleControlsTopScreenGround = Symbol(
19870
+ [0x322E4],
19871
+ [0x230FBC4],
19872
+ None,
19873
+ "HandleControlsTopScreenGround",
19874
+ "Handles the controls top screen display in the overworld.\n\nFor some reason the implementation seems considerably jankier in ground mode. In dungeon mode there's this structure for the top screen that has handlers for creating, updating and closing the various top screen layouts in a sort of polymorphic way. Here there's just a separate function for every layout that gets called every frame and seems to have a switch-case to handle everything about it.\n\nNo params.",
19875
+ None,
19876
+ )
19877
+
19878
+ GetDungeonMapPos = Symbol(
19879
+ [0x32A14],
19880
+ [0x23102F4],
19881
+ None,
19882
+ "GetDungeonMapPos",
19883
+ "Checks if a dungeon should be displayed on the map and the position where it should be displayed if so.\n\nr0: [Output] Buffer where the coordinates of the map marker will be stored. The coordinates are shifted 8 bits to the left, so they are probably fixed-point numbers instead of integers.\nr1: Dungeon ID\nreturn: True if the dungeon should be displayed on the map, false otherwise.",
19884
+ None,
19885
+ )
19886
+
19887
+ WorldMapSetMode = Symbol(
19888
+ [0x32CD0],
19889
+ [0x23105B0],
19890
+ None,
19891
+ "WorldMapSetMode",
19892
+ "Function called by the script function 'worldmap_SetMode'\nDefine the mode of the world map, which can among other things be used to decide if the player character should appear on the world map\nThe mode is set even if no world map is set\n\nr0: world map mode",
19893
+ None,
19894
+ )
19895
+
19896
+ WorldMapSetCamera = Symbol(
19897
+ [0x32D90],
19898
+ [0x2310670],
19899
+ None,
19900
+ "WorldMapSetCamera",
19901
+ "Function called with the script function 'worldmap_SetCamera'.\nSet the map marker the world map should try to center on (while still ensuring it doesn't go over the background border)\nHas no effect if no map is currently set\n\nr0: map marker id",
19902
+ None,
19903
+ )
19904
+
19905
+ StatusUpdate = Symbol(
19906
+ [0x3771C],
19907
+ [0x2314FFC],
19908
+ None,
19909
+ "StatusUpdate",
19910
+ "Implements SPECIAL_PROC_STATUS_UPDATE (see ScriptSpecialProcessCall).\n\nNo params.",
19911
+ None,
19912
+ )
19913
+
19914
+ HandleTeamStatsGround = Symbol(
19915
+ [0x37760],
19916
+ [0x2315040],
19917
+ None,
19918
+ "HandleTeamStatsGround",
19919
+ "Handles the team stats top screen display in the overworld.\n\nFor some reason the implementation seems considerably jankier in ground mode. In dungeon mode there's this structure for the top screen that has handlers for creating, updating and closing the various top screen layouts in a sort of polymorphic way. Here there's just a separate function for every layout that gets called every frame and seems to have a switch-case to handle everything about it.\n\nNo params.",
19920
+ None,
19921
+ )
19922
+
19923
+ ProcessScriptParam = _Deprecated("ProcessScriptParam", ScriptParamToInt)
19924
+
19925
+
19926
+ class JpOverlay11Data:
19927
+
19928
+ OVERLAY11_UNKNOWN_TABLE__NA_2316A38 = Symbol(
19929
+ None,
19930
+ None,
19931
+ None,
19932
+ "OVERLAY11_UNKNOWN_TABLE__NA_2316A38",
19933
+ "Multiple entries are pointers to the string 'script.c'\n\nNote: unverified, ported from Irdkwia's notes\n\ntype: undefined4[40]",
19934
+ "",
19935
+ )
19936
+
19937
+ SCRIPT_COMMAND_PARSING_DATA = Symbol(
19938
+ [0x3A75C],
19939
+ [0x231803C],
19940
+ None,
19941
+ "SCRIPT_COMMAND_PARSING_DATA",
19942
+ "Used by ScriptCommandParsing somehow",
19943
+ "undefined[32]",
19944
+ )
19945
+
19946
+ SCRIPT_OP_CODE_NAMES = Symbol(
19947
+ [0x3A77C],
19948
+ [0x231805C],
19949
+ None,
19950
+ "SCRIPT_OP_CODE_NAMES",
19951
+ "Opcode name strings pointed to by entries in SCRIPT_OP_CODES (script_opcode::name)",
19952
+ "char[0]",
19953
+ )
19954
+
19955
+ SCRIPT_OP_CODES = Symbol(
19956
+ [0x3C294],
19957
+ [0x2319B74],
19958
+ 0xBF8,
19959
+ "SCRIPT_OP_CODES",
19960
+ "Table of opcodes for the script engine. There are 383 8-byte entries.\n\nThese opcodes underpin the various ExplorerScript functions you can call in the SkyTemple SSB debugger.\n\ntype: struct script_opcode_table",
19961
+ "struct script_opcode_table",
19962
+ )
19963
+
19964
+ OVERLAY11_DEBUG_STRINGS = Symbol(
19965
+ [0x3CE8C],
19966
+ [0x231A76C],
19967
+ None,
19968
+ "OVERLAY11_DEBUG_STRINGS",
19969
+ "Strings used with various debug printing functions throughout the overlay",
19970
+ "char[0]",
19971
+ )
19972
+
19973
+ C_ROUTINE_NAMES = Symbol(
19974
+ [0x3D770],
19975
+ [0x231B050],
19976
+ None,
19977
+ "C_ROUTINE_NAMES",
19978
+ "Common routine name strings pointed to by entries in C_ROUTINES (common_routine::name)",
19979
+ "char[0]",
19980
+ )
19981
+
19982
+ C_ROUTINES = Symbol(
19983
+ [0x404AC],
19984
+ [0x231DD8C],
19985
+ 0x15E8,
19986
+ "C_ROUTINES",
19987
+ "Common routines used within the unionall.ssb script (the master script). There are 701 8-byte entries.\n\nThese routines underpin the ExplorerScript coroutines you can call in the SkyTemple SSB debugger.\n\ntype: struct common_routine_table",
19988
+ "struct common_routine_table",
19989
+ )
19990
+
19991
+ GROUND_WEATHER_TABLE = Symbol(
19992
+ [0x41A94],
19993
+ [0x231F374],
19994
+ None,
19995
+ "GROUND_WEATHER_TABLE",
19996
+ "Note: unverified, ported from Irdkwia's notes\n\ntype: struct ground_weather_entry[12]",
19997
+ "struct ground_weather_entry[12]",
19998
+ )
19999
+
20000
+ GROUND_WAN_FILES_TABLE = Symbol(
20001
+ [0x41AC4],
20002
+ [0x231F3A4],
20003
+ None,
20004
+ "GROUND_WAN_FILES_TABLE",
20005
+ "Note: unverified, ported from Irdkwia's notes\n\ntype: char[343][12]",
20006
+ "char[343][12]",
20007
+ )
20008
+
20009
+ OBJECTS = Symbol(
20010
+ [0x42AD8],
20011
+ [0x23203B8],
20012
+ 0x1A04,
20013
+ "OBJECTS",
20014
+ "Table of objects for the script engine, which can be placed in scenes. There are a version-dependent number of 12-byte entries.\n\ntype: struct script_object[length / 12]",
20015
+ "struct script_object[0]",
20016
+ )
20017
+
20018
+ RECRUITMENT_TABLE_LOCATIONS = Symbol(
20019
+ [0x44518],
20020
+ [0x2321DF8],
19265
20021
  0x16,
19266
20022
  "RECRUITMENT_TABLE_LOCATIONS",
19267
20023
  "Table of dungeon IDs corresponding to entries in RECRUITMENT_TABLE_SPECIES.\n\ntype: struct dungeon_id_16[22]",
@@ -19295,6 +20051,15 @@ class JpOverlay11Data:
19295
20051
  "struct level_tilemap_list_entry[81]",
19296
20052
  )
19297
20053
 
20054
+ ACTOR_FUNCTION_TABLE = Symbol(
20055
+ [0x45500],
20056
+ [0x2322DE0],
20057
+ 0x50,
20058
+ "ACTOR_FUNCTION_TABLE",
20059
+ "A function pointer table accessed when performing script opcodes on actors.",
20060
+ "struct ground_entity_function_table",
20061
+ )
20062
+
19298
20063
  SETANIMATION_TABLE = Symbol(
19299
20064
  [0x45550],
19300
20065
  [0x2322E30],
@@ -19304,6 +20069,24 @@ class JpOverlay11Data:
19304
20069
  "struct animation_data[84]",
19305
20070
  )
19306
20071
 
20072
+ OBJECT_FUNCTION_TABLE = Symbol(
20073
+ [0x45A80],
20074
+ [0x2323360],
20075
+ 0x50,
20076
+ "OBJECT_FUNCTION_TABLE",
20077
+ "A function pointer table accessed when performing script opcodes on objects.",
20078
+ "struct ground_entity_function_table",
20079
+ )
20080
+
20081
+ PERFORMER_FUNCTION_TABLE = Symbol(
20082
+ [0x45D94],
20083
+ [0x2323674],
20084
+ 0x50,
20085
+ "PERFORMER_FUNCTION_TABLE",
20086
+ "A function pointer table accessed when performing script opcodes on performers.",
20087
+ "struct ground_entity_function_table",
20088
+ )
20089
+
19307
20090
  TEAM_INFO_BOX_DEFAULT_WINDOW_PARAMS = Symbol(
19308
20091
  [0x460E0],
19309
20092
  [0x23239C0],
@@ -27987,8 +28770,8 @@ class JpOverlay29Functions:
27987
28770
  )
27988
28771
 
27989
28772
  LoadWeather3DFiles = Symbol(
27990
- None,
27991
- None,
28773
+ [0x5C394],
28774
+ [0x2339C74],
27992
28775
  None,
27993
28776
  "LoadWeather3DFiles",
27994
28777
  "Loads the 1001.wte, 1005.wte, and 1031.wte files in dungeon.bin, which are used for the 3D effects for the tileset weather as well as the Sandstorm/Fog weather conditions.\n\nNo params.",
@@ -27996,8 +28779,8 @@ class JpOverlay29Functions:
27996
28779
  )
27997
28780
 
27998
28781
  RenderWeather3D = Symbol(
27999
- None,
28000
- None,
28782
+ [0x5C5A8],
28783
+ [0x2339E88],
28001
28784
  None,
28002
28785
  "RenderWeather3D",
28003
28786
  "Renders the 3D effects for the tileset weather as well as the Sandstorm/Fog weather conditions.\n\nNo params.",
@@ -28023,8 +28806,8 @@ class JpOverlay29Functions:
28023
28806
  )
28024
28807
 
28025
28808
  FlashLeaderIcon = Symbol(
28026
- None,
28027
- None,
28809
+ [0x5D508],
28810
+ [0x233ADE8],
28028
28811
  None,
28029
28812
  "FlashLeaderIcon",
28030
28813
  "Seems to control flashing the leader's icon on the minimap when r0 = 0? Doesn't seem to ever be called when r0 = 1.\n\nr0: ?",
@@ -30149,6 +30932,15 @@ class JpOverlay29Data:
30149
30932
  "struct damage_negating_exclusive_eff_entry[28]",
30150
30933
  )
30151
30934
 
30935
+ TWO_TURN_STATUSES = Symbol(
30936
+ [0x76400],
30937
+ [0x2353CE0],
30938
+ 0xB,
30939
+ "TWO_TURN_STATUSES",
30940
+ "Lists all status IDs that are for two-turn moves. The last entry is null.",
30941
+ "struct status_two_turn_id_8[11]",
30942
+ )
30943
+
30152
30944
  TWO_TURN_MOVES_AND_STATUSES = Symbol(
30153
30945
  [0x7644C],
30154
30946
  [0x2353D2C],
@@ -31575,9 +32367,9 @@ class JpRamFunctions:
31575
32367
  class JpRamData:
31576
32368
 
31577
32369
  DEFAULT_MEMORY_ARENA_MEMORY = Symbol(
31578
- None,
31579
- None,
31580
- None,
32370
+ [0xB6420],
32371
+ [0x20B6420],
32372
+ 0x1E6400,
31581
32373
  "DEFAULT_MEMORY_ARENA_MEMORY",
31582
32374
  "The memory region for the default memory arena.\n\nThe length is defined by DEFAULT_MEMORY_ARENA_SIZE.\n\nOne mode that uses this region for heap allocations is dungeon mode.",
31583
32375
  "uint8_t[1991680]",
@@ -31674,18 +32466,18 @@ class JpRamData:
31674
32466
  )
31675
32467
 
31676
32468
  TOUCHSCREEN_STATUS = Symbol(
31677
- None,
31678
- None,
31679
- None,
32469
+ [0x2A4E3C],
32470
+ [0x22A4E3C],
32471
+ 0x104,
31680
32472
  "TOUCHSCREEN_STATUS",
31681
32473
  "Status of the touchscreen, including the coordinates of the currently pressed position in pixels.",
31682
32474
  "struct touchscreen_status",
31683
32475
  )
31684
32476
 
31685
32477
  BAG_ITEMS = Symbol(
31686
- None,
31687
- None,
31688
- None,
32478
+ [0x2A5084],
32479
+ [0x22A5084],
32480
+ 0x12C,
31689
32481
  "BAG_ITEMS",
31690
32482
  "Array of item structs within the player's bag.\n\nWhile the game only allows a maximum of 48 items during normal play, it seems to read up to 50 item slots if filled.\n\ntype: struct item[50]",
31691
32483
  "struct item[50]",
@@ -31786,18 +32578,36 @@ class JpRamData:
31786
32578
  )
31787
32579
 
31788
32580
  AUDIO_COMMANDS_BUFFER = Symbol(
31789
- None,
31790
- None,
31791
- None,
32581
+ [0x2A64B0],
32582
+ [0x22A64B0],
32583
+ 0x200,
31792
32584
  "AUDIO_COMMANDS_BUFFER",
31793
32585
  "Buffer used to store audio commands. 16 entries in total. Seems like entries are removed at some point (maybe after the commands are read or after they finish executing).",
31794
32586
  "struct audio_command[16]",
31795
32587
  )
31796
32588
 
31797
- CURSOR_16_SPRITE_ID = Symbol(
32589
+ SOUND_MEMORY_ARENA_PTR = Symbol(
31798
32590
  None,
31799
32591
  None,
31800
32592
  None,
32593
+ "SOUND_MEMORY_ARENA_PTR",
32594
+ "Pointer to SOUND_MEMORY_ARENA.",
32595
+ "struct mem_arena*",
32596
+ )
32597
+
32598
+ WINDOW_LIST = Symbol(
32599
+ [0x2AA0E8],
32600
+ [0x22AA0E8],
32601
+ 0x1180,
32602
+ "WINDOW_LIST",
32603
+ "Array of all window structs. Newly created window structs are taken from slots in this array.\n\nNote that this array isn't strictly ordered in any way. A newly created window will occupy the first available slot. If a window in an early slot is destroyed, windows that are still active in later slots won't be shifted back unless destroyed and recreated.\n\ntype: struct window_list",
32604
+ "struct window_list",
32605
+ )
32606
+
32607
+ CURSOR_16_SPRITE_ID = Symbol(
32608
+ [0x2AC470],
32609
+ [0x22AC470],
32610
+ 0x2,
31801
32611
  "CURSOR_16_SPRITE_ID",
31802
32612
  "Id of the 'FONT/cursor_16.wan' sprite loaded in WAN_TABLE",
31803
32613
  "uint16_t",
@@ -31813,63 +32623,45 @@ class JpRamData:
31813
32623
  )
31814
32624
 
31815
32625
  CURSOR_ANIMATION_CONTROL = Symbol(
31816
- None,
31817
- None,
31818
- None,
32626
+ [0x2AC48C],
32627
+ [0x22AC48C],
32628
+ 0x7C,
31819
32629
  "CURSOR_ANIMATION_CONTROL",
31820
32630
  "animation_control of 'FONT/cursor.wan'",
31821
32631
  "struct animation_control*",
31822
32632
  )
31823
32633
 
31824
32634
  CURSOR_16_ANIMATION_CONTROL = Symbol(
31825
- None,
31826
- None,
31827
- None,
32635
+ [0x2AC508],
32636
+ [0x22AC508],
32637
+ 0x7C,
31828
32638
  "CURSOR_16_ANIMATION_CONTROL",
31829
32639
  "animation_control of 'FONT/cursor_16.wan'",
31830
32640
  "struct animation_control*",
31831
32641
  )
31832
32642
 
31833
32643
  ALERT_SPRITE_ID = Symbol(
31834
- None,
31835
- None,
31836
- None,
32644
+ [0x2AC584],
32645
+ [0x22AC584],
32646
+ 0x2,
31837
32647
  "ALERT_SPRITE_ID",
31838
32648
  "Id of the 'FONT/alert.wan' sprite loaded in WAN_TABLE",
31839
32649
  "uint16_t",
31840
32650
  )
31841
32651
 
31842
32652
  ALERT_ANIMATION_CONTROL = Symbol(
31843
- None,
31844
- None,
31845
- None,
32653
+ [0x2AC588],
32654
+ [0x22AC588],
32655
+ 0x7C,
31846
32656
  "ALERT_ANIMATION_CONTROL",
31847
32657
  "animation_control of 'FONT/alter.wan'",
31848
32658
  "struct animation_control*",
31849
32659
  )
31850
32660
 
31851
- SOUND_MEMORY_ARENA_PTR = Symbol(
31852
- None,
31853
- None,
31854
- None,
31855
- "SOUND_MEMORY_ARENA_PTR",
31856
- "Pointer to SOUND_MEMORY_ARENA.",
31857
- "struct mem_arena*",
31858
- )
31859
-
31860
- WINDOW_LIST = Symbol(
31861
- None,
31862
- None,
31863
- None,
31864
- "WINDOW_LIST",
31865
- "Array of all window structs. Newly created window structs are taken from slots in this array.\n\nNote that this array isn't strictly ordered in any way. A newly created window will occupy the first available slot. If a window in an early slot is destroyed, windows that are still active in later slots won't be shifted back unless destroyed and recreated.\n\ntype: struct window_list",
31866
- "struct window_list",
31867
- )
31868
-
31869
32661
  LAST_NEW_MOVE = Symbol(
31870
- None,
31871
- None,
31872
- None,
32662
+ [0x2AC658],
32663
+ [0x22AC658],
32664
+ 0x8,
31873
32665
  "LAST_NEW_MOVE",
31874
32666
  "Move struct of the last new move introduced when learning a new move. Persists even after the move selection is made in the menu.\n\ntype: struct move",
31875
32667
  "struct move",
@@ -31903,18 +32695,18 @@ class JpRamData:
31903
32695
  )
31904
32696
 
31905
32697
  KAOMADO_STREAM = Symbol(
31906
- None,
31907
- None,
31908
- None,
32698
+ [0x2ACC6C],
32699
+ [0x22ACC6C],
32700
+ 0x48,
31909
32701
  "KAOMADO_STREAM",
31910
32702
  "The file stream utilized for all Kaomado portrait loads.\n\ntype: struct file_stream",
31911
32703
  "struct file_stream",
31912
32704
  )
31913
32705
 
31914
32706
  PENDING_DUNGEON_ID = Symbol(
31915
- None,
31916
- None,
31917
- None,
32707
+ [0x2ACCB8],
32708
+ [0x22ACCB8],
32709
+ 0x1,
31918
32710
  "PENDING_DUNGEON_ID",
31919
32711
  "The ID of the selected dungeon when setting off from the overworld.\n\nControls the text and map location during the 'map cutscene' just before entering a dungeon, as well as the actual dungeon loaded afterwards.\n\nThis field is actually part of a larger struct that also contains PENDING_STARTING_FLOOR.\n\ntype: struct dungeon_id_8",
31920
32712
  "struct dungeon_id_8",
@@ -31930,9 +32722,9 @@ class JpRamData:
31930
32722
  )
31931
32723
 
31932
32724
  PLAY_TIME_SECONDS = Symbol(
31933
- None,
31934
- None,
31935
- None,
32725
+ [0x2ACE50],
32726
+ [0x22ACE50],
32727
+ 0x4,
31936
32728
  "PLAY_TIME_SECONDS",
31937
32729
  "The player's total play time in seconds.",
31938
32730
  "uint32_t",
@@ -31948,27 +32740,27 @@ class JpRamData:
31948
32740
  )
31949
32741
 
31950
32742
  TEAM_NAME = Symbol(
31951
- None,
31952
- None,
31953
- None,
32743
+ [0x2AD0D4],
32744
+ [0x22AD0D4],
32745
+ 0x5,
31954
32746
  "TEAM_NAME",
31955
- "The team name.\n\nA null-terminated string, with a maximum length of 10. Presumably encoded with the ANSI/Shift JIS encoding the game typically uses.\n\nThis is presumably part of a larger struct, together with other nearby data.",
31956
- "char[10]",
32747
+ "The team name.\n\nA null-terminated string, with a maximum length of 10 (or 5 in JP). Presumably encoded with the ANSI/Shift JIS encoding the game typically uses.\n\nThis is presumably part of a larger struct, together with other nearby data.",
32748
+ "",
31957
32749
  )
31958
32750
 
31959
32751
  LEVEL_UP_DATA_MONSTER_ID = Symbol(
31960
- None,
31961
- None,
31962
- None,
32752
+ [0x2AD0E4],
32753
+ [0x22AD0E4],
32754
+ 0x2,
31963
32755
  "LEVEL_UP_DATA_MONSTER_ID",
31964
32756
  "ID of the monster whose level-up data is currently stored in LEVEL_UP_DATA_DECOMPRESS_BUFFER.",
31965
32757
  "struct monster_id_16",
31966
32758
  )
31967
32759
 
31968
32760
  LEVEL_UP_DATA_DECOMPRESS_BUFFER = Symbol(
31969
- None,
31970
- None,
31971
- None,
32761
+ [0x2AD0E8],
32762
+ [0x22AD0E8],
32763
+ 0x4B0,
31972
32764
  "LEVEL_UP_DATA_DECOMPRESS_BUFFER",
31973
32765
  "Buffer used to stored a monster's decompressed level up data. Used by GetLvlUpEntry.\n\nExact size is a guess (100 levels * 12 bytes per entry = 1200 = 0x4B0).",
31974
32766
  "struct level_up_entry[100]",
@@ -32007,8 +32799,8 @@ class JpRamData:
32007
32799
  CLR_IMG = Symbol([0x2BAD7C], [0x22BAD7C], None, "CLR_IMG", "", "undefined4")
32008
32800
 
32009
32801
  THREAD_INFO_STRUCT = Symbol(
32010
- None,
32011
- None,
32802
+ [0x2BAE00],
32803
+ [0x22BAE00],
32012
32804
  None,
32013
32805
  "THREAD_INFO_STRUCT",
32014
32806
  "thread_info struct that contains global state about threads",
@@ -32043,18 +32835,18 @@ class JpRamData:
32043
32835
  )
32044
32836
 
32045
32837
  LOCK_NOTIFY_ARRAY = Symbol(
32046
- None,
32047
- None,
32048
- None,
32838
+ [0x326414],
32839
+ [0x2326414],
32840
+ 0x18,
32049
32841
  "LOCK_NOTIFY_ARRAY",
32050
- "Used to notify scripts waiting for a certain lock to unlock so they can resume their execution.\n\n1 byte per lock. Exact size isn't confirmed, it could potentially be longer.",
32842
+ "Used to notify scripts waiting for a certain lock to unlock so they can resume their execution.\n\n1 byte per lock.",
32051
32843
  "bool[20]",
32052
32844
  )
32053
32845
 
32054
32846
  GROUND_MEMORY_ARENA_1 = Symbol(
32055
- None,
32056
- None,
32057
- None,
32847
+ [0x326520],
32848
+ [0x2326520],
32849
+ 0x1C,
32058
32850
  "GROUND_MEMORY_ARENA_1",
32059
32851
  "This is a top-level memory arena used for some things in ground mode.\n\nIt's used for user_flags 8, 15, and 16.\n\nIncluding the allocator metadata, this arena occupies 0x64000 bytes of space.\n\ntype: struct mem_arena",
32060
32852
  "struct mem_arena",
@@ -32092,117 +32884,117 @@ class JpRamData:
32092
32884
  )
32093
32885
 
32094
32886
  LOADED_ATTACK_SPRITE_DATA = Symbol(
32095
- None,
32096
- None,
32097
- None,
32887
+ [0x37DC2C],
32888
+ [0x237DC2C],
32889
+ 0x4,
32098
32890
  "LOADED_ATTACK_SPRITE_DATA",
32099
32891
  "[Runtime] Pointer to the dynamically allocated structure relating to the currently loaded attack sprite, in dungeon mode.\n\ntype: struct loaded_attack_sprite_data*",
32100
32892
  "struct loaded_attack_sprite_data*",
32101
32893
  )
32102
32894
 
32103
32895
  AI_THROWN_ITEM_DIRECTION_IS_USED = Symbol(
32104
- None,
32105
- None,
32106
- None,
32896
+ [0x37DC50],
32897
+ [0x237DC50],
32898
+ 0x8,
32107
32899
  "AI_THROWN_ITEM_DIRECTION_IS_USED",
32108
32900
  "[Runtime] Used in GetPossibleAiThrownItemDirections to indicate whether a certain direction enum value is already being used or not.",
32109
32901
  "bool[8]",
32110
32902
  )
32111
32903
 
32112
- AI_THROWN_ITEM_DIRECTIONS = Symbol(
32113
- None,
32114
- None,
32115
- None,
32116
- "AI_THROWN_ITEM_DIRECTIONS",
32117
- "[Runtime] Used to store the directions output by GetPossibleAiThrownItemDirections.",
32118
- "uint32_t[8]",
32119
- )
32120
-
32121
32904
  AI_THROWN_ITEM_PROBABILITIES = Symbol(
32122
- None,
32123
- None,
32124
- None,
32905
+ [0x37DC58],
32906
+ [0x237DC58],
32907
+ 0x20,
32125
32908
  "AI_THROWN_ITEM_PROBABILITIES",
32126
32909
  "[Runtime] Used to store the probabilities matching the directions in THROWN_ITEM_DIRECTIONS.",
32127
32910
  "uint32_t[8]",
32128
32911
  )
32129
32912
 
32913
+ AI_THROWN_ITEM_DIRECTIONS = Symbol(
32914
+ [0x37DC78],
32915
+ [0x237DC78],
32916
+ 0x20,
32917
+ "AI_THROWN_ITEM_DIRECTIONS",
32918
+ "[Runtime] Used to store the directions output by GetPossibleAiThrownItemDirections.",
32919
+ "uint32_t[8]",
32920
+ )
32921
+
32130
32922
  ROLLOUT_ICE_BALL_MISSED = Symbol(
32131
- None,
32132
- None,
32133
- None,
32923
+ [0x37DCE9],
32924
+ [0x237DCE9],
32925
+ 0x1,
32134
32926
  "ROLLOUT_ICE_BALL_MISSED",
32135
32927
  "[Runtime] Appears to be set to true whenever a hit from Rollout or Ice Ball fails to deal damage.",
32136
32928
  "bool",
32137
32929
  )
32138
32930
 
32139
32931
  MULTIHIT_FATIGUE_MOVE_USED = Symbol(
32140
- None,
32141
- None,
32142
- None,
32932
+ [0x37DCEA],
32933
+ [0x237DCEA],
32934
+ 0x1,
32143
32935
  "MULTIHIT_FATIGUE_MOVE_USED",
32144
32936
  "[Runtime] Appears to be set to true whenever a multihit fatigue move deals damage.",
32145
32937
  "bool",
32146
32938
  )
32147
32939
 
32148
32940
  TWINEEDLE_HIT_TRACKER = Symbol(
32149
- None,
32150
- None,
32151
- None,
32941
+ [0x37DCEB],
32942
+ [0x237DCEB],
32943
+ 0x1,
32152
32944
  "TWINEEDLE_HIT_TRACKER",
32153
32945
  "[Runtime] Appears to be set to true whenever Twineedle hits and deals damage. So that even if the second attack misses, it will still try to poison the target.",
32154
32946
  "bool",
32155
32947
  )
32156
32948
 
32157
32949
  RAPID_SPIN_BINDING_REMOVAL = Symbol(
32158
- None,
32159
- None,
32160
- None,
32950
+ [0x37DCED],
32951
+ [0x237DCED],
32952
+ 0x1,
32161
32953
  "RAPID_SPIN_BINDING_REMOVAL",
32162
32954
  "[Runtime] Appears to be set to true when using Rapid Spin to later remove any binding effects and Leech Seed.",
32163
32955
  "bool",
32164
32956
  )
32165
32957
 
32166
32958
  ROLLOUT_ICE_BALL_SUCCESSIVE_HITS = Symbol(
32167
- None,
32168
- None,
32169
- None,
32959
+ [0x37DCF0],
32960
+ [0x237DCF0],
32961
+ 0x4,
32170
32962
  "ROLLOUT_ICE_BALL_SUCCESSIVE_HITS",
32171
32963
  "[Runtime] Seems to count the number of successive hits by Rollout or Ice Ball.",
32172
32964
  "int",
32173
32965
  )
32174
32966
 
32175
32967
  MULTIHIT_MOVE_SUCCESSIVE_HITS = Symbol(
32176
- None,
32177
- None,
32178
- None,
32968
+ [0x37DCF8],
32969
+ [0x237DCF8],
32970
+ 0x4,
32179
32971
  "MULTIHIT_MOVE_SUCCESSIVE_HITS",
32180
32972
  "[Runtime] Seems to count the number of successive hits for multihit moves. This is used by Twineedle to check to attempt to apply Poison after the second attack.",
32181
32973
  "int",
32182
32974
  )
32183
32975
 
32184
32976
  TRIPLE_KICK_SUCCESSIVE_HITS = Symbol(
32185
- None,
32186
- None,
32187
- None,
32977
+ [0x37DCFC],
32978
+ [0x237DCFC],
32979
+ 0x4,
32188
32980
  "TRIPLE_KICK_SUCCESSIVE_HITS",
32189
32981
  "[Runtime] Seems to count the number of successive hits by Triple Kick.",
32190
32982
  "int",
32191
32983
  )
32192
32984
 
32193
32985
  METRONOME_NEXT_INDEX = Symbol(
32194
- None,
32195
- None,
32196
- None,
32986
+ [0x37DD08],
32987
+ [0x237DD08],
32988
+ 0x4,
32197
32989
  "METRONOME_NEXT_INDEX",
32198
32990
  "[Runtime] The index into METRONOME_TABLE for the next usage of Metronome.",
32199
32991
  "int",
32200
32992
  )
32201
32993
 
32202
32994
  FLOOR_GENERATION_STATUS = Symbol(
32203
- None,
32204
- None,
32205
- None,
32995
+ [0x37E23C],
32996
+ [0x237E23C],
32997
+ 0x40,
32206
32998
  "FLOOR_GENERATION_STATUS",
32207
32999
  "[Runtime] Status data related to generation of the current floor in a dungeon.\n\nThis data is populated as the dungeon floor is generated.\n\ntype: struct floor_generation_status",
32208
33000
  "struct floor_generation_status",