pmdsky-debug-py 10.1.15__py3-none-any.whl → 10.2.19__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
@@ -405,6 +405,24 @@ class JpArm9Functions:
405
405
  None,
406
406
  )
407
407
 
408
+ SinAbs4096 = Symbol(
409
+ [0x18D0],
410
+ [0x20018D0],
411
+ None,
412
+ "SinAbs4096",
413
+ "This function computes the sine of the absolute value of r0 using a lookup table. The period of the function is 4096, and the range is [-256, 256].\n\nr0: The value to get the sine of.\nreturn: floor(256 * sin(pi * abs(x) / 2048)) as a signed 32-bit integer.",
414
+ None,
415
+ )
416
+
417
+ CosAbs4096 = Symbol(
418
+ [0x1980],
419
+ [0x2001980],
420
+ None,
421
+ "CosAbs4096",
422
+ "This function computes the cosine of the absolute value of r0 using a lookup table. The period of the function is 4096, and the range is [-256, 256].\n\nr0: The value to get the cosine of.\nreturn: floor(256 * cos(pi * abs(x) / 2048)) as a signed 32-bit integer.",
423
+ None,
424
+ )
425
+
408
426
  UFixedPoint64CmpLt = Symbol(
409
427
  [0x1A30],
410
428
  [0x2001A30],
@@ -1852,6 +1870,15 @@ class JpArm9Functions:
1852
1870
  None,
1853
1871
  )
1854
1872
 
1873
+ ReturnEggExclusiveItem = Symbol(
1874
+ [0xEBC0],
1875
+ [0x200EBC0],
1876
+ None,
1877
+ "ReturnEggExclusiveItem",
1878
+ "Checks if a species has an egg exclusive item, for the purposes of the Croagunk Swap Shop.\nPulls from BABY_EXCLUSIVE_ITEM_PAIRS, so Pichu/Thundershard is not correctly accounted for by this function.\nr0: monster ID\nreturn: Exclusive item_id for that monster, 0 if none found.",
1879
+ None,
1880
+ )
1881
+
1855
1882
  SetActiveInventoryToMain = Symbol(
1856
1883
  [0xEBFC],
1857
1884
  [0x200EBFC],
@@ -2770,12 +2797,30 @@ class JpArm9Functions:
2770
2797
  None,
2771
2798
  )
2772
2799
 
2800
+ GenerateCroagunkItems = Symbol(
2801
+ [0x12B4C],
2802
+ [0x2012B4C],
2803
+ None,
2804
+ "GenerateCroagunkItems",
2805
+ "Generates the Croagunk Swap Shop items for Croagunk in Wigglytuff's Guild.\nreturn: 1 if at least one item generated, 0 otherwise.",
2806
+ None,
2807
+ )
2808
+
2773
2809
  GetSynthItem = Symbol(
2774
2810
  [0x13220],
2775
2811
  [0x2013220],
2776
2812
  None,
2777
2813
  "GetSynthItem",
2778
- "Note: unverified, ported from Irdkwia's notes",
2814
+ "Searches synth_template in SYNTH/synth.bin for a matching exclusive item.\nr0: item_id of an exclusive item.\nreturn: pointer to synth_template containing that item. 0 if no match was found.",
2815
+ None,
2816
+ )
2817
+
2818
+ GetValidSynthsForSpecies = Symbol(
2819
+ [0x13274],
2820
+ [0x2013274],
2821
+ None,
2822
+ "GetValidSynthsForSpecies",
2823
+ "Fills out monster_synth_data for the specified monster, containing the synth templates that apply to said monster.\nr0: monster_id of the monster\nr1: [output] Pointer to an empty monster_synth_data, to be filled by the function.\nr2: Pointer to a type_synth_data, so the monster's types can be enabled in the bitfield.\nreturn: 1 if at least one synth_template matches the species, and 0 if not.",
2779
2824
  None,
2780
2825
  )
2781
2826
 
@@ -2838,7 +2883,7 @@ class JpArm9Functions:
2838
2883
  [0x2013788],
2839
2884
  None,
2840
2885
  "InitMove",
2841
- "Initializes a move info struct.\n\nThis sets f_exists and f_enabled_for_ai on the flags, the ID to the given ID, the PP to the max PP for the move ID, and the ginseng boost to 0.\n\nr0: pointer to move to initialize\nr1: move ID",
2886
+ "Initializes a move info struct.\n\nThis sets f_exists and f_enabled_for_ai on the flags, the ID to the given ID, the PP to the max PP for the move ID, and the ginseng boost to 0.\n\nr0: [output] pointer to move to initialize\nr1: move ID",
2842
2887
  None,
2843
2888
  )
2844
2889
 
@@ -3013,12 +3058,12 @@ class JpArm9Functions:
3013
3058
  None,
3014
3059
  )
3015
3060
 
3016
- IsAffectedByTaunt = Symbol(
3061
+ IsUsableWhileTaunted = Symbol(
3017
3062
  [0x13B20],
3018
3063
  [0x2013B20],
3019
3064
  None,
3020
- "IsAffectedByTaunt",
3021
- "Note: unverified, ported from Irdkwia's notes\n\nBased on struct move_data, maybe this should be IsUsableWhileTaunted?\n\nr0: move\nreturn: bool",
3065
+ "IsUsableWhileTaunted",
3066
+ "Returns true if the given move can be used while the user is affected by Taunt, or false if the move cannot be used while taunted.\n\nr0: move\nreturn: bool whether the move can be used while taunted.",
3022
3067
  None,
3023
3068
  )
3024
3069
 
@@ -3454,6 +3499,15 @@ class JpArm9Functions:
3454
3499
  None,
3455
3500
  )
3456
3501
 
3502
+ PlaySeByIdVolumeWrapper = Symbol(
3503
+ [0x17CD8],
3504
+ [0x2017CD8],
3505
+ None,
3506
+ "PlaySeByIdVolumeWrapper",
3507
+ "Wrapper for PlaySeByIdVolume with 0x100 as the volume.\n\nr0: Sound effect ID",
3508
+ None,
3509
+ )
3510
+
3457
3511
  PlaySeVolumeWrapper = Symbol(
3458
3512
  [0x17D24],
3459
3513
  [0x2017D24],
@@ -3490,6 +3544,15 @@ class JpArm9Functions:
3490
3544
  None,
3491
3545
  )
3492
3546
 
3547
+ PlayMeById = Symbol(
3548
+ [0x18264],
3549
+ [0x2018264],
3550
+ None,
3551
+ "PlayMeById",
3552
+ "Initializes some values and then calls SendAudioCommand to play a ME track (musical sound effect).\n\nFor a list of tracks, see https://wiki.skytemple.org/index.php?title=List_of_Sound_Effects#ME\n\nChecks for DEBUG_FLAG_BGM_OFF. The volume is set to either 0 or 255 depending on the flag before calling SendAudioCommand.\n\nr0: ME ID",
3553
+ None,
3554
+ )
3555
+
3493
3556
  PlaySeByIdVolume = Symbol(
3494
3557
  [0x18310],
3495
3558
  [0x2018310],
@@ -4372,6 +4435,24 @@ class JpArm9Functions:
4372
4435
  None,
4373
4436
  )
4374
4437
 
4438
+ GetSize0x80Buffer = Symbol(
4439
+ [0x25008],
4440
+ [0x2025008],
4441
+ None,
4442
+ "GetSize0x80Buffer",
4443
+ "Returns a pointer to a buffer of size 0x80.\n\nr0: index in a global list of buffers\nreturn: buffer pointer",
4444
+ None,
4445
+ )
4446
+
4447
+ GetSize0x80Buffer2 = Symbol(
4448
+ [0x25018],
4449
+ [0x2025018],
4450
+ None,
4451
+ "GetSize0x80Buffer2",
4452
+ "Same as GetSize0x80Buffer, except the buffer is from a separate list.\n\nr0: index in a global list of buffers\nreturn: buffer pointer",
4453
+ None,
4454
+ )
4455
+
4375
4456
  GetDungeonResultString = Symbol(
4376
4457
  [0x25028],
4377
4458
  [0x2025028],
@@ -4381,6 +4462,15 @@ class JpArm9Functions:
4381
4462
  None,
4382
4463
  )
4383
4464
 
4465
+ SubstitutePlaceholderItemTags = Symbol(
4466
+ [0x25038],
4467
+ [0x2025038],
4468
+ None,
4469
+ "SubstitutePlaceholderItemTags",
4470
+ "Sets what item's name should be displayed in place of the [item:r0] tag when printing a string to the message log.\n\nIs almost always accompanied by a SetMessageLogPreprocessorArgsIdVal(tag id, tag id | 0x40000) call.\n\nr0: tag id\nr1: item struct pointer\nr2: some static address related to storing the item (always the same throughout the code)",
4471
+ None,
4472
+ )
4473
+
4384
4474
  SetQuestionMarks = Symbol(
4385
4475
  [0x25134],
4386
4476
  [0x2025134],
@@ -4530,7 +4620,7 @@ class JpArm9Functions:
4530
4620
  [0x202596C],
4531
4621
  None,
4532
4622
  "GetTalkLine",
4533
- "Note: unverified, ported from Irdkwia's notes\n\nr0: personality_index\nr1: group_id\nr2: restrictions\nreturn: ?",
4623
+ "Gets the string id to be displayed for dialogue with a team member.\n\nr0: personality_index (either a monster id or some constant)\nr1: talk type\nr2: restrictions\nreturn: string id",
4534
4624
  None,
4535
4625
  )
4536
4626
 
@@ -4831,6 +4921,24 @@ class JpArm9Functions:
4831
4921
  None,
4832
4922
  )
4833
4923
 
4924
+ GetWindowIdSelectedItemOnPage = Symbol(
4925
+ [0x2AED8],
4926
+ [0x202AED8],
4927
+ None,
4928
+ "GetWindowIdSelectedItemOnPage",
4929
+ "Gets the index on the page of the current item the user has selected on the menu given by the window_id.\n\nr0: window id\nreturn: index of current selected item on the page",
4930
+ None,
4931
+ )
4932
+
4933
+ GetSimpleMenuResult = Symbol(
4934
+ [0x2AF08, 0x2B8D4],
4935
+ [0x202AF08, 0x202B8D4],
4936
+ None,
4937
+ "GetSimpleMenuResult",
4938
+ "Note: unverified, ported from Irdkwia's notes\n\nr0: window_id\nreturn: ?",
4939
+ None,
4940
+ )
4941
+
4834
4942
  UpdateParentMenu = Symbol(
4835
4943
  [0x2AF54],
4836
4944
  [0x202AF54],
@@ -4912,15 +5020,6 @@ class JpArm9Functions:
4912
5020
  None,
4913
5021
  )
4914
5022
 
4915
- GetSimpleMenuResult = Symbol(
4916
- [0x2B8D4],
4917
- [0x202B8D4],
4918
- None,
4919
- "GetSimpleMenuResult",
4920
- "Note: unverified, ported from Irdkwia's notes\n\nr0: window_id\nreturn: ?",
4921
- None,
4922
- )
4923
-
4924
5023
  UpdateSimpleMenu = Symbol(
4925
5024
  [0x2B920],
4926
5025
  [0x202B920],
@@ -5011,6 +5110,15 @@ class JpArm9Functions:
5011
5110
  None,
5012
5111
  )
5013
5112
 
5113
+ DrawAdvancedMenu = Symbol(
5114
+ [0x2C5B8],
5115
+ [0x202C5B8],
5116
+ None,
5117
+ "DrawAdvancedMenu",
5118
+ "Draws the contents of an advanced menu on the screen.\n\nr0: window pointer",
5119
+ None,
5120
+ )
5121
+
5014
5122
  CreateCollectionMenu = Symbol(
5015
5123
  [0x2C700],
5016
5124
  [0x202C700],
@@ -5569,6 +5677,15 @@ class JpArm9Functions:
5569
5677
  None,
5570
5678
  )
5571
5679
 
5680
+ AddMessageToAlertBox = Symbol(
5681
+ [0x30450],
5682
+ [0x2030450],
5683
+ None,
5684
+ "AddMessageToAlertBox",
5685
+ "Adds a message to the dungeon alert box.\n\nr0: window_id\nr1: preprocessor flags\nr2: message string pointer\nr3: preprocessor_args struct pointer\nstack[0]: whether the message is the start of a new group (meaning it should be preceded by a horizontal line)\nreturn: whether the message was successfully added",
5686
+ None,
5687
+ )
5688
+
5572
5689
  IsAlertBoxActive = Symbol(
5573
5690
  [0x30538],
5574
5691
  [0x2030538],
@@ -5677,6 +5794,15 @@ class JpArm9Functions:
5677
5794
  None,
5678
5795
  )
5679
5796
 
5797
+ GetWindowIdPageStart = Symbol(
5798
+ [0x30D38],
5799
+ [0x2030D38],
5800
+ None,
5801
+ "GetWindowIdPageStart",
5802
+ "Gets the item the current menu page of a given window id starts on (the current page id times the maximum number of items on one page).\n\nr0: window id\nreturn: first item on page",
5803
+ None,
5804
+ )
5805
+
5680
5806
  GetAdvancedTextBoxFlags2 = Symbol(
5681
5807
  [0x30D60],
5682
5808
  [0x2030D60],
@@ -5790,7 +5916,88 @@ class JpArm9Functions:
5790
5916
  [0x2032794],
5791
5917
  None,
5792
5918
  "IsMenuOptionActive",
5793
- "Called whenever a menu option is selected. Returns whether the option is active or not.\n\nr0: ?\nreturn: True if the menu option is enabled, false otherwise.",
5919
+ "Called whenever a menu option is selected. Returns whether the option is active or not.\n\nr0: window_input_ctx struct pointer\nreturn: True if the menu option is enabled, false otherwise.",
5920
+ None,
5921
+ )
5922
+
5923
+ GetSelectedItemOnPage = Symbol(
5924
+ [0x32878],
5925
+ [0x2032878],
5926
+ None,
5927
+ "GetSelectedItemOnPage",
5928
+ "Gets the index on the page of the current item the user has selected.\n\nr0: window_input_ctx struct pointer\nreturn: index of current selected item on the page",
5929
+ None,
5930
+ )
5931
+
5932
+ GetCurrentPage = Symbol(
5933
+ [0x32880],
5934
+ [0x2032880],
5935
+ None,
5936
+ "GetCurrentPage",
5937
+ "Gets the index of the current menu page the user is on.\n\nr0: window_input_ctx struct pointer\nreturn: current page",
5938
+ None,
5939
+ )
5940
+
5941
+ GetPageStart = Symbol(
5942
+ [0x32888],
5943
+ [0x2032888],
5944
+ None,
5945
+ "GetPageStart",
5946
+ "Gets the index of the item the current menu page starts on (the current page index times the maximum number of items on one page).\n\nr0: window_input_ctx struct pointer\nreturn: index of first item on page",
5947
+ None,
5948
+ )
5949
+
5950
+ GetSelectedMenuItemIdx = Symbol(
5951
+ [0x32898],
5952
+ [0x2032898],
5953
+ None,
5954
+ "GetSelectedMenuItemIdx",
5955
+ "Gets the index of the current menu item the user has selected.\n\nr0: window_input_ctx struct pointer\nreturn: index of current selected item",
5956
+ None,
5957
+ )
5958
+
5959
+ GetTotalNumMenuItems = Symbol(
5960
+ [0x328AC],
5961
+ [0x20328AC],
5962
+ None,
5963
+ "GetTotalNumMenuItems",
5964
+ "Gets the total number of items in the menu.\n\nr0: window_input_ctx struct pointer\nreturn: number of menu items",
5965
+ None,
5966
+ )
5967
+
5968
+ GetNumItemsOnPage = Symbol(
5969
+ [0x328B4],
5970
+ [0x20328B4],
5971
+ None,
5972
+ "GetNumItemsOnPage",
5973
+ "Gets the number of items on the current menu page.\n\nr0: window_input_ctx struct pointer\nreturn: number of items on page",
5974
+ None,
5975
+ )
5976
+
5977
+ GetMaxItemsOnPage = Symbol(
5978
+ [0x328BC],
5979
+ [0x20328BC],
5980
+ None,
5981
+ "GetMaxItemsOnPage",
5982
+ "Gets the maximum possible number of items the menu can hold on one of its pages.\n\nr0: window_input_ctx struct pointer\nreturn: number of menu pages",
5983
+ None,
5984
+ )
5985
+
5986
+ GetTotalNumPages = Symbol(
5987
+ [0x328C4],
5988
+ [0x20328C4],
5989
+ None,
5990
+ "GetTotalNumPages",
5991
+ "Gets the total number of pages in the menu.\n\nr0: window_input_ctx struct pointer\nreturn: number of menu pages",
5992
+ None,
5993
+ )
5994
+
5995
+ GetPageItemYOffset = Symbol(
5996
+ [0x32BF8],
5997
+ [0x2032BF8],
5998
+ None,
5999
+ "GetPageItemYOffset",
6000
+ "Gets the y-offset of a given item on the current menu page.\n\nr0: window_input_ctx struct pointer\nr1: item index on page, in range [0, n_items_on_page)\nreturn: y-offset",
5794
6001
  None,
5795
6002
  )
5796
6003
 
@@ -5812,6 +6019,60 @@ class JpArm9Functions:
5812
6019
  None,
5813
6020
  )
5814
6021
 
6022
+ OverlayLoadEntriesEqual = Symbol(
6023
+ [0x34AC0],
6024
+ [0x2034AC0],
6025
+ None,
6026
+ "OverlayLoadEntriesEqual",
6027
+ "Checks if two overlay_load_entries have the same values for all of their fields.\n\nr0: overlay_load_entry pointer\nr1: overlay_load_entry pointer\nreturn: bool",
6028
+ None,
6029
+ )
6030
+
6031
+ FreeActiveMenu = Symbol(
6032
+ [0x34B10],
6033
+ [0x2034B10],
6034
+ None,
6035
+ "FreeActiveMenu",
6036
+ "Frees the currently active menu by calling the destructor function of the active entry in menu_control.\n\nNo params.",
6037
+ None,
6038
+ )
6039
+
6040
+ InitMenu = Symbol(
6041
+ [0x34C04],
6042
+ [0x2034C04],
6043
+ None,
6044
+ "InitMenu",
6045
+ "Initializes a menu by setting the incoming_entry field of menu_control to the given overlay_load_entry.\n\nr0: overlay_load_entry pointer\nreturn: whether the menu was successfully initialized",
6046
+ None,
6047
+ )
6048
+
6049
+ InitMenuWithWindowExtraInfo = Symbol(
6050
+ [0x34C94],
6051
+ [0x2034C94],
6052
+ None,
6053
+ "InitMenuWithWindowExtraInfo",
6054
+ "Has the same functionality as InitMenu except also tries to initialize menu_control's window_extra_info struct.\n\nr0: overlay_load_entry pointer\nr1: whether there is a window_extra_info struct\nr2: window_extra_info pointer\nreturn: whether the menu was successfully initialized",
6055
+ None,
6056
+ )
6057
+
6058
+ CopyMenuControlWindowExtraInfo = Symbol(
6059
+ [0x34D58],
6060
+ [0x2034D58],
6061
+ None,
6062
+ "CopyMenuControlWindowExtraInfo",
6063
+ "Copies menu_control's window_extra_info to the given address.\n\nr0: [output] window_extra_info pointer\nreturn: whether the window extra info was successfully copied",
6064
+ None,
6065
+ )
6066
+
6067
+ HandleMenus = Symbol(
6068
+ [0x34DA0],
6069
+ [0x2034DA0],
6070
+ None,
6071
+ "HandleMenus",
6072
+ "Master function called on every frame for handling the game's menus (seemingly the vast majority with the exception of some in dungeon mode). \n\nThis includes updating them, freeing them, and entering and exiting their respective overlays if applicable.\n\nNo params.",
6073
+ None,
6074
+ )
6075
+
5815
6076
  SetupAndShowKeyboard = Symbol(
5816
6077
  [0x36ACC],
5817
6078
  [0x2036ACC],
@@ -5875,6 +6136,15 @@ class JpArm9Functions:
5875
6136
  None,
5876
6137
  )
5877
6138
 
6139
+ GetCheckIqMenuSkillString = Symbol(
6140
+ [0x424AC],
6141
+ [0x20424AC],
6142
+ None,
6143
+ "GetCheckIqMenuSkillString",
6144
+ "Gets the string for a team member's IQ skill to be displayed in the Check IQ menu.\n\nIs stored as an advanced_menu_entry_fn_t in the advanced_menu struct.\n\nr0: [output] buffer\nr1: id in team member's IQ skill list\nreturn: input buffer",
6145
+ None,
6146
+ )
6147
+
5878
6148
  GetNotifyNote = Symbol(
5879
6149
  [0x4880C],
5880
6150
  [0x204880C],
@@ -6145,6 +6415,15 @@ class JpArm9Functions:
6145
6415
  None,
6146
6416
  )
6147
6417
 
6418
+ LoadScriptVariableValueString = Symbol(
6419
+ [0x4BF10],
6420
+ [0x204BF10],
6421
+ None,
6422
+ "LoadScriptVariableValueString",
6423
+ "Loads a string from the value of a given script variable. Adds a trailing null terminator in the output.\n\nr0: script variable ID\nr1: [output] script variable value string\nr2: number of characters to load",
6424
+ None,
6425
+ )
6426
+
6148
6427
  SaveScriptVariableValueBytes = Symbol(
6149
6428
  [0x4BF2C],
6150
6429
  [0x204BF2C],
@@ -6163,6 +6442,15 @@ class JpArm9Functions:
6163
6442
  None,
6164
6443
  )
6165
6444
 
6445
+ CalcScriptVariables = Symbol(
6446
+ [0x4C00C],
6447
+ [0x204C00C],
6448
+ None,
6449
+ "CalcScriptVariables",
6450
+ "Performs a calculation on two loaded script variables.\n\nr0: script variable 1\nr1: script variable 2\nr2: calculation to perform on the script variables\nreturn: calculation result",
6451
+ None,
6452
+ )
6453
+
6166
6454
  EventFlagResume = Symbol(
6167
6455
  [0x4C320],
6168
6456
  [0x204C320],
@@ -6622,6 +6910,15 @@ class JpArm9Functions:
6622
6910
  None,
6623
6911
  )
6624
6912
 
6913
+ TilesetSecondaryTerrainIsChasm = Symbol(
6914
+ [0x4F8B4],
6915
+ [0x204F8B4],
6916
+ None,
6917
+ "TilesetSecondaryTerrainIsChasm",
6918
+ "Returns true if the given tileset has a chasm secondary terrain.\n\nr0: tileset id\nreturn: bool",
6919
+ None,
6920
+ )
6921
+
6625
6922
  GetNbFloors = Symbol(
6626
6923
  [0x4F8D4],
6627
6924
  [0x204F8D4],
@@ -8841,7 +9138,7 @@ class JpArm9Functions:
8841
9138
  [0x205F110],
8842
9139
  None,
8843
9140
  "DungeonRequestsDoneWrapper",
8844
- "Calls DungeonRequestsDone with the second argument set to false.\n\nr0: ?\nreturn: number of mission completed",
9141
+ "Calls DungeonRequestsDone with the second argument set to false.\n\nr0: ?\nreturn: number of missions completed",
8845
9142
  None,
8846
9143
  )
8847
9144
 
@@ -8859,7 +9156,7 @@ class JpArm9Functions:
8859
9156
  [0x205F3B8],
8860
9157
  None,
8861
9158
  "AddMissionToJobList",
8862
- "Adds a mission to the Job List.\n\nr0: mission to add",
9159
+ "Adds a mission to the Job List.\n\nr0: mission to add\nreturn: bool (0 if mission was successfully added)",
8863
9160
  None,
8864
9161
  )
8865
9162
 
@@ -9088,12 +9385,21 @@ class JpArm9Functions:
9088
9385
  None,
9089
9386
  )
9090
9387
 
9091
- GetActorMatchingStorageId = Symbol(
9388
+ GetScriptEntityMonsterId = Symbol(
9389
+ [0x65C5C],
9390
+ [0x2065C5C],
9391
+ None,
9392
+ "GetScriptEntityMonsterId",
9393
+ "Returns the monster id of the script entity given by the id.\n\nr0: script_entity_id\nreturn: monster id",
9394
+ None,
9395
+ )
9396
+
9397
+ GetScriptEntityMatchingStorageId = Symbol(
9092
9398
  [0x65C80],
9093
9399
  [0x2065C80],
9094
9400
  None,
9095
- "GetActorMatchingStorageId",
9096
- "Note: unverified, ported from Irdkwia's notes\n\nr0: actor_id\nreturn: storage ID",
9401
+ "GetScriptEntityMatchingStorageId",
9402
+ "Returns the storage id matching the script entity given by the id.\n\nr0: script_entity_id\nreturn: storage ID",
9097
9403
  None,
9098
9404
  )
9099
9405
 
@@ -9102,7 +9408,7 @@ class JpArm9Functions:
9102
9408
  [0x2065E24],
9103
9409
  None,
9104
9410
  "SetActorTalkMainAndActorTalkSub",
9105
- "Sets ACTOR_TALK_MAIN and ACTOR_TALK_SUB to given actor IDs.\n\nr0: actor_id for ACTOR_TALK_MAIN\nr1: actor_id for ACTOR_TALK_SUB",
9411
+ "Sets ACTOR_TALK_MAIN and ACTOR_TALK_SUB to given actor IDs.\n\nr0: script_entity_id for ACTOR_TALK_MAIN\nr1: script_entity_id for ACTOR_TALK_SUB",
9106
9412
  None,
9107
9413
  )
9108
9414
 
@@ -9111,7 +9417,7 @@ class JpArm9Functions:
9111
9417
  [0x2065E38],
9112
9418
  None,
9113
9419
  "SetActorTalkMain",
9114
- "Sets ACTOR_TALK_MAIN to be actor_id.\nImplements SPECIAL_PROC_SET_ACTOR_TALK_MAIN (see ScriptSpecialProcessCall).\n\nr0: actor_id",
9420
+ "Sets ACTOR_TALK_MAIN to be actor_id.\nImplements SPECIAL_PROC_SET_ACTOR_TALK_MAIN (see ScriptSpecialProcessCall).\n\nr0: script_entity_id",
9115
9421
  None,
9116
9422
  )
9117
9423
 
@@ -9120,7 +9426,7 @@ class JpArm9Functions:
9120
9426
  [0x2065E48],
9121
9427
  None,
9122
9428
  "SetActorTalkSub",
9123
- "Sets ACTOR_TALK_SUB to be actor_id.\nImplements SPECIAL_PROC_SET_ACTOR_TALK_SUB (see ScriptSpecialProcessCall).\n\nr0: actor_id",
9429
+ "Sets ACTOR_TALK_SUB to be actor_id.\nImplements SPECIAL_PROC_SET_ACTOR_TALK_SUB (see ScriptSpecialProcessCall).\n\nr0: script_entity_id",
9124
9430
  None,
9125
9431
  )
9126
9432
 
@@ -9261,10 +9567,16 @@ class JpArm9Functions:
9261
9567
  "DirectoryFile_LoadDirectoryFile", LoadFileInPack
9262
9568
  )
9263
9569
 
9570
+ IsAffectedByTaunt = _Deprecated("IsAffectedByTaunt", IsUsableWhileTaunted)
9571
+
9264
9572
  IsMoveRangeString19 = _Deprecated("IsMoveRangeString19", IsMoveRangeStringUser)
9265
9573
 
9266
9574
  GetLowKickMultiplier = _Deprecated("GetLowKickMultiplier", GetWeightMultiplier)
9267
9575
 
9576
+ GetActorMatchingStorageId = _Deprecated(
9577
+ "GetActorMatchingStorageId", GetScriptEntityMatchingStorageId
9578
+ )
9579
+
9268
9580
 
9269
9581
  class JpArm9Data:
9270
9582
 
@@ -9398,6 +9710,15 @@ class JpArm9Data:
9398
9710
  "uint32_t",
9399
9711
  )
9400
9712
 
9713
+ SINE_VALUE_TABLE = Symbol(
9714
+ [0x90F30],
9715
+ [0x2090F30],
9716
+ 0x1000,
9717
+ "SINE_VALUE_TABLE",
9718
+ "A lookup table for the values of sine. The table contains 1024 values evenly distributed in the range [sin(0) * 256, sin(pi / 2) * 256); i.e., the first quarter of the unit circle. The rest of sine (and cosine) is derived by reusing these values.",
9719
+ "int16_t[1024]",
9720
+ )
9721
+
9401
9722
  NATURAL_LOG_VALUE_TABLE = Symbol(
9402
9723
  [0x91730],
9403
9724
  [0x2091730],
@@ -9480,13 +9801,13 @@ class JpArm9Data:
9480
9801
  "",
9481
9802
  )
9482
9803
 
9483
- ARM9_UNKNOWN_TABLE__NA_2097FF8 = Symbol(
9804
+ BABY_EXCLUSIVE_ITEM_PAIRS = Symbol(
9484
9805
  [0x982EC],
9485
9806
  [0x20982EC],
9486
9807
  0x40,
9487
- "ARM9_UNKNOWN_TABLE__NA_2097FF8",
9488
- "16*0x4 (0x2+0x2)\n\nNote: unverified, ported from Irdkwia's notes",
9489
- "",
9808
+ "BABY_EXCLUSIVE_ITEM_PAIRS",
9809
+ "Stores the IDs of each baby Pokemon (and Phione), as well as the exclusive item they hatch with.",
9810
+ "struct baby_exclusive_item_pair[16]",
9490
9811
  )
9491
9812
 
9492
9813
  KECLEON_SHOP_ITEM_TABLE_LISTS_1 = Symbol(
@@ -9750,6 +10071,15 @@ class JpArm9Data:
9750
10071
  "struct window_params",
9751
10072
  )
9752
10073
 
10074
+ NULL_OVERLAY_LOAD_ENTRY = Symbol(
10075
+ [0x9B9E0],
10076
+ [0x209B9E0],
10077
+ None,
10078
+ "NULL_OVERLAY_LOAD_ENTRY",
10079
+ "An overlay_load_entry whose values are all zeroes.\n\ntype: overlay_load_entry",
10080
+ "struct overlay_load_entry",
10081
+ )
10082
+
9753
10083
  PARTNER_TALK_KIND_TABLE = Symbol(
9754
10084
  [0x9E0B8],
9755
10085
  [0x209E0B8],
@@ -9759,6 +10089,15 @@ class JpArm9Data:
9759
10089
  "struct partner_talk_kind_table_entry[11]",
9760
10090
  )
9761
10091
 
10092
+ EVENT_FLAG_PROG_POS_INFO = Symbol(
10093
+ [0x9E280],
10094
+ [0x209E280],
10095
+ 0x8,
10096
+ "EVENT_FLAG_PROG_POS_INFO",
10097
+ "Debug information used to log an error with an unrecognized operation in CalcScriptVariables.",
10098
+ "struct prog_pos_info",
10099
+ )
10100
+
9762
10101
  SCRIPT_VARS_LOCALS = Symbol(
9763
10102
  [0x9E2A0],
9764
10103
  [0x209E2A0],
@@ -9768,6 +10107,15 @@ class JpArm9Data:
9768
10107
  "struct script_local_var_table",
9769
10108
  )
9770
10109
 
10110
+ EVENT_FLAG_EXPANSION_ERROR = Symbol(
10111
+ [0x9E2FC],
10112
+ [0x209E2FC],
10113
+ 0x20,
10114
+ "EVENT_FLAG_EXPANSION_ERROR",
10115
+ "Error log message for an unrecognized operation in CalcScriptVariables.",
10116
+ "",
10117
+ )
10118
+
9771
10119
  SCRIPT_VARS = Symbol(
9772
10120
  [0x9EC44],
9773
10121
  [0x209EC44],
@@ -10209,6 +10557,15 @@ class JpArm9Data:
10209
10557
  "fx32_8",
10210
10558
  )
10211
10559
 
10560
+ TACTICS_FOLLOW_LEADER = Symbol(
10561
+ [0xA2CE0],
10562
+ [0x20A2CE0],
10563
+ 0xC,
10564
+ "TACTICS_FOLLOW_LEADER",
10565
+ "Array of boolean values corresponding to each tactic_id enum, determining whether the tactic makes party members follow the leader.",
10566
+ "bool[12]",
10567
+ )
10568
+
10212
10569
  FORBIDDEN_FORGOT_MOVE_LIST = Symbol(
10213
10570
  [0xA2CEC],
10214
10571
  [0x20A2CEC],
@@ -10286,7 +10643,7 @@ class JpArm9Data:
10286
10643
  [0x20A2EBC],
10287
10644
  0xC8,
10288
10645
  "SECONDARY_TERRAIN_TYPES",
10289
- "The type of secondary terrain for each dungeon in the game.\n\nThis is an array of 200 bytes. Each byte is an enum corresponding to one dungeon.\n\ntype: struct secondary_terrain_type_8[200]",
10646
+ "The type of secondary terrain for each tileset in the game.\n\nThis is an array of 200 bytes. Each byte is an enum corresponding to one tileset.\n\ntype: struct secondary_terrain_type_8[200]",
10290
10647
  "struct secondary_terrain_type_8[200]",
10291
10648
  )
10292
10649
 
@@ -10985,6 +11342,15 @@ class JpArm9Data:
10985
11342
  "int16_t[6]",
10986
11343
  )
10987
11344
 
11345
+ MENU_CONTROL_PTR = Symbol(
11346
+ [0xB11D8],
11347
+ [0x20B11D8],
11348
+ None,
11349
+ "MENU_CONTROL_PTR",
11350
+ "Pointer to the master struct used for handling menus.\n\ntype: menu_control*",
11351
+ "struct menu_control*",
11352
+ )
11353
+
10988
11354
  KEYBOARD_STRING_IDS = Symbol(
10989
11355
  [0xB1240],
10990
11356
  [0x20B1240],
@@ -11063,7 +11429,7 @@ class JpArm9Data:
11063
11429
  None,
11064
11430
  "MONSTER_DATA_TABLE_PTR",
11065
11431
  "[Runtime] Points to data about monster species.",
11066
- "undefined*",
11432
+ "struct monster_data_table*",
11067
11433
  )
11068
11434
 
11069
11435
  UNOWN_SPECIES_ADDITIONAL_CHAR_PTR_TABLE = Symbol(
@@ -13239,6 +13605,15 @@ class JpLibsFunctions:
13239
13605
  None,
13240
13606
  )
13241
13607
 
13608
+ PM_ForceToPowerOff = Symbol(
13609
+ [0x15F34],
13610
+ [0x20822F4],
13611
+ None,
13612
+ "PM_ForceToPowerOff",
13613
+ "Powers off the system.\n\nreturn: ?",
13614
+ None,
13615
+ )
13616
+
13242
13617
  abs = Symbol(
13243
13618
  [0x1A484],
13244
13619
  [0x2086844],
@@ -13572,12 +13947,12 @@ class JpLibsFunctions:
13572
13947
  None,
13573
13948
  )
13574
13949
 
13575
- _dgeq = Symbol(
13950
+ _dgr = Symbol(
13576
13951
  [0x22E04],
13577
13952
  [0x208F1C4],
13578
13953
  None,
13579
- "_dgeq",
13580
- "Implements the >= operator for IEEE 754 double-precision floating-point numbers.\n\nr0: a (low bits)\nr1: a (high bits)\nr2: b (low bits)\nr3: b (high bits)\nreturn: a >= b",
13954
+ "_dgr",
13955
+ "Implements the > operator for IEEE 754 double-precision floating-point numbers.\n\nr0: a (low bits)\nr1: a (high bits)\nr2: b (low bits)\nr3: b (high bits)\nreturn: a > b",
13581
13956
  None,
13582
13957
  )
13583
13958
 
@@ -17206,6 +17581,15 @@ class JpOverlay10Data:
17206
17581
  "struct dungeon_id_8",
17207
17582
  )
17208
17583
 
17584
+ FIERY_DRUM_RECRUIT_BOOST = Symbol(
17585
+ [0x78D8],
17586
+ [0x22C5AF8],
17587
+ 0x2,
17588
+ "FIERY_DRUM_RECRUIT_BOOST",
17589
+ "The amount added to the recruit rate with compatible species when holding a Fiery Drum.",
17590
+ "int16_t",
17591
+ )
17592
+
17209
17593
  BAD_POISON_DAMAGE_COOLDOWN = Symbol(
17210
17594
  [0x78DC],
17211
17595
  [0x22C5AFC],
@@ -17215,6 +17599,15 @@ class JpOverlay10Data:
17215
17599
  "int16_t",
17216
17600
  )
17217
17601
 
17602
+ ICY_FLUTE_RECRUIT_BOOST = Symbol(
17603
+ [0x78E4],
17604
+ [0x22C5B04],
17605
+ 0x2,
17606
+ "ICY_FLUTE_RECRUIT_BOOST",
17607
+ "The amount added to the recruit rate with compatible species when holding an Icy Flute.",
17608
+ "int16_t",
17609
+ )
17610
+
17218
17611
  PROTEIN_STAT_BOOST = Symbol(
17219
17612
  [0x78E8],
17220
17613
  [0x22C5B08],
@@ -17260,6 +17653,15 @@ class JpOverlay10Data:
17260
17653
  "int16_t",
17261
17654
  )
17262
17655
 
17656
+ GOLDEN_MASK_RECRUIT_BOOST = Symbol(
17657
+ [0x7904],
17658
+ [0x22C5B24],
17659
+ 0x2,
17660
+ "GOLDEN_MASK_RECRUIT_BOOST",
17661
+ "The amount added to the recruit rate when holding a Golden Mask.",
17662
+ "int16_t",
17663
+ )
17664
+
17263
17665
  IRON_TAIL_LOWER_DEFENSE_CHANCE = Symbol(
17264
17666
  [0x7908],
17265
17667
  [0x22C5B28],
@@ -17305,6 +17707,15 @@ class JpOverlay10Data:
17305
17707
  "int16_t",
17306
17708
  )
17307
17709
 
17710
+ HURL_DAMAGE = Symbol(
17711
+ [0x7920],
17712
+ [0x22C5B40],
17713
+ 0x2,
17714
+ "HURL_DAMAGE",
17715
+ "Damage dealt from hurling a monster at another monster (10).",
17716
+ "int16_t",
17717
+ )
17718
+
17308
17719
  TRAP_BUSTER_ACTIVATION_CHANCE = Symbol(
17309
17720
  [0x7924],
17310
17721
  [0x22C5B44],
@@ -17341,6 +17752,15 @@ class JpOverlay10Data:
17341
17752
  "int16_t",
17342
17753
  )
17343
17754
 
17755
+ AMBER_TEAR_RECRUIT_BOOST = Symbol(
17756
+ [0x7944],
17757
+ [0x22C5B64],
17758
+ 0x2,
17759
+ "AMBER_TEAR_RECRUIT_BOOST",
17760
+ "The amount added to the recruit rate when holding an Amber Tear.",
17761
+ "int16_t",
17762
+ )
17763
+
17344
17764
  MUDDY_WATER_LOWER_ACCURACY_CHANCE = Symbol(
17345
17765
  [0x794C],
17346
17766
  [0x22C5B6C],
@@ -17449,6 +17869,15 @@ class JpOverlay10Data:
17449
17869
  "int16_t",
17450
17870
  )
17451
17871
 
17872
+ CURSE_DAMAGE_COOLDOWN = Symbol(
17873
+ [0x7984],
17874
+ [0x22C5BA4],
17875
+ None,
17876
+ "CURSE_DAMAGE_COOLDOWN",
17877
+ "The number of turns between passive curse damage (3).",
17878
+ "int16_t",
17879
+ )
17880
+
17452
17881
  STEEL_WING_BOOST_DEFENSE_CHANCE = Symbol(
17453
17882
  [0x798C],
17454
17883
  [0x22C5BAC],
@@ -17503,6 +17932,15 @@ class JpOverlay10Data:
17503
17932
  "int16_t",
17504
17933
  )
17505
17934
 
17935
+ PITFALL_TRAP_DAMAGE = Symbol(
17936
+ [0x79AC],
17937
+ [0x22C5BCC],
17938
+ 0x2,
17939
+ "PITFALL_TRAP_DAMAGE",
17940
+ "Damage dealt by pitfall traps (5).",
17941
+ "int16_t",
17942
+ )
17943
+
17506
17944
  CHARGE_BEAM_BOOST_SPECIAL_ATTACK_CHANCE = Symbol(
17507
17945
  [0x79B8],
17508
17946
  [0x22C5BD8],
@@ -17530,6 +17968,15 @@ class JpOverlay10Data:
17530
17968
  "int16_t",
17531
17969
  )
17532
17970
 
17971
+ FRIEND_BOW_FAST_FRIEND_BOOST = Symbol(
17972
+ [0x79C4],
17973
+ [0x22C5BE4],
17974
+ 0x2,
17975
+ "FRIEND_BOW_FAST_FRIEND_BOOST",
17976
+ "The amount added to the recruit rate when holding a Friend Bow or with the Fast Friend IQ skill.",
17977
+ "int16_t",
17978
+ )
17979
+
17533
17980
  OCTAZOOKA_LOWER_ACCURACY_CHANCE = Symbol(
17534
17981
  [0x79C8],
17535
17982
  [0x22C5BE8],
@@ -17584,6 +18031,15 @@ class JpOverlay10Data:
17584
18031
  "int16_t",
17585
18032
  )
17586
18033
 
18034
+ CUTE_CHARM_INFATUATE_CHANCE = Symbol(
18035
+ [0x79EC],
18036
+ [0x22C5C0C],
18037
+ 0x2,
18038
+ "CUTE_CHARM_INFATUATE_CHANCE",
18039
+ "The chance of Cute Charm infatuating, as a percentage (12%).",
18040
+ "int16_t",
18041
+ )
18042
+
17587
18043
  LICK_PARALYZE_CHANCE = Symbol(
17588
18044
  [0x79F0],
17589
18045
  [0x22C5C10],
@@ -17728,6 +18184,15 @@ class JpOverlay10Data:
17728
18184
  "int16_t",
17729
18185
  )
17730
18186
 
18187
+ INGRAIN_BONUS_REGEN = Symbol(
18188
+ [0x7A58],
18189
+ [0x22C5C78],
18190
+ None,
18191
+ "INGRAIN_BONUS_REGEN",
18192
+ "The passive bonus regen given by the Ingrain status condition (10).",
18193
+ "int16_t",
18194
+ )
18195
+
17731
18196
  AFTERMATH_CHANCE = Symbol(
17732
18197
  [0x7A5C],
17733
18198
  [0x22C5C7C],
@@ -17755,6 +18220,15 @@ class JpOverlay10Data:
17755
18220
  "int16_t",
17756
18221
  )
17757
18222
 
18223
+ WRAP_DAMAGE = Symbol(
18224
+ [0x7A98],
18225
+ [0x22C5CB8],
18226
+ None,
18227
+ "WRAP_DAMAGE",
18228
+ "Damage dealt by the wrap status condition (6).",
18229
+ "int16_t",
18230
+ )
18231
+
17758
18232
  TYPE_ADVANTAGE_MASTER_CRIT_RATE = Symbol(
17759
18233
  [0x7AA8],
17760
18234
  [0x22C5CC8],
@@ -17764,6 +18238,15 @@ class JpOverlay10Data:
17764
18238
  "int16_t",
17765
18239
  )
17766
18240
 
18241
+ INGRAIN_BONUS_REGEN_COOLDOWN = Symbol(
18242
+ [0x7AB0],
18243
+ [0x22C5CD0],
18244
+ None,
18245
+ "INGRAIN_BONUS_REGEN_COOLDOWN",
18246
+ "The number of turns between ingrain health regeneration (5).",
18247
+ "int16_t",
18248
+ )
18249
+
17767
18250
  ORAN_BERRY_HP_RESTORATION = Symbol(
17768
18251
  [0x7AB4],
17769
18252
  [0x22C5CD4],
@@ -17773,6 +18256,15 @@ class JpOverlay10Data:
17773
18256
  "int16_t",
17774
18257
  )
17775
18258
 
18259
+ WRAP_DAMAGE_COOLDOWN = Symbol(
18260
+ [0x7AB8],
18261
+ [0x22C5CD8],
18262
+ None,
18263
+ "WRAP_DAMAGE_COOLDOWN",
18264
+ "The number of turns between passive wrap damage (2).",
18265
+ "int16_t",
18266
+ )
18267
+
17776
18268
  SITRUS_BERRY_FULL_HP_BOOST = Symbol(
17777
18269
  [0x7ABC],
17778
18270
  [0x22C5CDC],
@@ -17831,6 +18323,15 @@ class JpOverlay10Data:
17831
18323
  [0x7AEC], [0x22C5D0C], 0x2, "STICK_POWER", "Attack power for Sticks.", "int16_t"
17832
18324
  )
17833
18325
 
18326
+ AQUA_RING_BONUS_REGEN = Symbol(
18327
+ [0x7AF0],
18328
+ [0x22C5D10],
18329
+ None,
18330
+ "AQUA_RING_BONUS_REGEN",
18331
+ "The passive bonus regen given by the Aqua Ring status condition (8).",
18332
+ "int16_t",
18333
+ )
18334
+
17834
18335
  BUBBLE_LOWER_SPEED_CHANCE = Symbol(
17835
18336
  [0x7AF4],
17836
18337
  [0x22C5D14],
@@ -17885,6 +18386,15 @@ class JpOverlay10Data:
17885
18386
  "int16_t",
17886
18387
  )
17887
18388
 
18389
+ CHATOT_SCARF_BOUNCE_CHANCE = Symbol(
18390
+ [0x7B10],
18391
+ [0x22C5D30],
18392
+ 0x2,
18393
+ "CHATOT_SCARF_BOUNCE_CHANCE",
18394
+ "The chance of the Chatot Scarf bouncing back a move, as a percentage (20%).",
18395
+ "int16_t",
18396
+ )
18397
+
17888
18398
  WEATHER_MOVE_TURN_COUNT = Symbol(
17889
18399
  [0x7B1C],
17890
18400
  [0x22C5D3C],
@@ -18173,6 +18683,15 @@ class JpOverlay10Data:
18173
18683
  "int16_t",
18174
18684
  )
18175
18685
 
18686
+ BAD_WEATHER_DAMAGE = Symbol(
18687
+ [0x7BB4],
18688
+ [0x22C5DD4],
18689
+ None,
18690
+ "BAD_WEATHER_DAMAGE",
18691
+ "Damage dealt by the Sandstorm and Hail weather conditions (3).",
18692
+ "int16_t",
18693
+ )
18694
+
18176
18695
  SCOPE_LENS_CRIT_RATE_BOOST = Symbol(
18177
18696
  [0x7BB8],
18178
18697
  [0x22C5DD8],
@@ -18191,6 +18710,51 @@ class JpOverlay10Data:
18191
18710
  "int16_t",
18192
18711
  )
18193
18712
 
18713
+ SKY_MELODICA_RECRUIT_BOOST = Symbol(
18714
+ [0x7BC4],
18715
+ [0x22C5DE4],
18716
+ 0x2,
18717
+ "SKY_MELODICA_RECRUIT_BOOST",
18718
+ "The amount added to the recruit rate with compatible species when holding a Sky Melodica.",
18719
+ "int16_t",
18720
+ )
18721
+
18722
+ GRASS_CORNET_RECRUIT_BOOST = Symbol(
18723
+ [0x7BC8],
18724
+ [0x22C5DE8],
18725
+ 0x2,
18726
+ "GRASS_CORNET_RECRUIT_BOOST",
18727
+ "The amount added to the recruit rate with compatible species when holding a Grass Cornet.",
18728
+ "int16_t",
18729
+ )
18730
+
18731
+ ROCK_HORN_RECRUIT_BOOST = Symbol(
18732
+ [0x7BCC],
18733
+ [0x22C5DEC],
18734
+ 0x2,
18735
+ "ROCK_HORN_RECRUIT_BOOST",
18736
+ "The amount added to the recruit rate with compatible species when holding a Rock Horn.",
18737
+ "int16_t",
18738
+ )
18739
+
18740
+ AQUA_MONICA_RECRUIT_BOOST = Symbol(
18741
+ [0x7BD0],
18742
+ [0x22C5DF0],
18743
+ 0x2,
18744
+ "AQUA_MONICA_RECRUIT_BOOST",
18745
+ "The amount added to the recruit rate with compatible species when holding a Aqua Monica.",
18746
+ "int16_t",
18747
+ )
18748
+
18749
+ TERRA_CYMBAL_RECRUIT_BOOST = Symbol(
18750
+ [0x7BD4],
18751
+ [0x22C5DF4],
18752
+ 0x2,
18753
+ "TERRA_CYMBAL_RECRUIT_BOOST",
18754
+ "The amount added to the recruit rate with compatible species when holding a Terra Cymbal.",
18755
+ "int16_t",
18756
+ )
18757
+
18194
18758
  ME_FIRST_MULTIPLIER = Symbol(
18195
18759
  [0x7BD8],
18196
18760
  [0x22C5DF8],
@@ -18236,6 +18800,60 @@ class JpOverlay10Data:
18236
18800
  "int16_t[2]",
18237
18801
  )
18238
18802
 
18803
+ SLEEPLESSNESS_TURN_RANGE = Symbol(
18804
+ [0x7BF0],
18805
+ [0x22C5E10],
18806
+ 0x4,
18807
+ "SLEEPLESSNESS_TURN_RANGE",
18808
+ "The turn range for the Sleepless status, [0x7F, 0x7F] (infinite).\n\ntype: int16_t[2]",
18809
+ "int16_t[2]",
18810
+ )
18811
+
18812
+ REFLECT_TURN_RANGE = Symbol(
18813
+ [0x7BF4],
18814
+ [0x22C5E14],
18815
+ 0x4,
18816
+ "REFLECT_TURN_RANGE",
18817
+ "The turn range for the Reflect status, [10, 12).\n\ntype: int16_t[2]",
18818
+ "int16_t[2]",
18819
+ )
18820
+
18821
+ LIGHT_SCREEN_TURN_RANGE = Symbol(
18822
+ [0x7BF8],
18823
+ [0x22C5E18],
18824
+ 0x4,
18825
+ "LIGHT_SCREEN_TURN_RANGE",
18826
+ "The turn range for the Light Screen status, [10, 12).\n\ntype: int16_t[2]",
18827
+ "int16_t[2]",
18828
+ )
18829
+
18830
+ SAFEGUARD_TURN_RANGE = Symbol(
18831
+ [0x7BFC],
18832
+ [0x22C5E1C],
18833
+ 0x4,
18834
+ "SAFEGUARD_TURN_RANGE",
18835
+ "The turn range for the Safeguard status, [15, 20).\n\ntype: int16_t[2]",
18836
+ "int16_t[2]",
18837
+ )
18838
+
18839
+ MIST_TURN_RANGE = Symbol(
18840
+ [0x7C00],
18841
+ [0x22C5E20],
18842
+ 0x4,
18843
+ "MIST_TURN_RANGE",
18844
+ "The turn range for the Mist status, [10, 14).\n\ntype: int16_t[2]",
18845
+ "int16_t[2]",
18846
+ )
18847
+
18848
+ MAGIC_COAT_TURN_RANGE = Symbol(
18849
+ [0x7C08],
18850
+ [0x22C5E28],
18851
+ 0x4,
18852
+ "MAGIC_COAT_TURN_RANGE",
18853
+ "The turn range for the Magic Coat status, [10, 14).\n\ntype: int16_t[2]",
18854
+ "int16_t[2]",
18855
+ )
18856
+
18239
18857
  BURN_DAMAGE_MULTIPLIER = Symbol(
18240
18858
  [0x7C0C],
18241
18859
  [0x22C5E2C],
@@ -18263,6 +18881,15 @@ class JpOverlay10Data:
18263
18881
  "fx32_8",
18264
18882
  )
18265
18883
 
18884
+ SET_REFLECT_STATUS_TURN_RANGE = Symbol(
18885
+ [0x7C18],
18886
+ [0x22C5E38],
18887
+ 0x4,
18888
+ "SET_REFLECT_STATUS_TURN_RANGE",
18889
+ "The turn range for the statuses (Counter, Mini Counter, Metal Burst) set by SetReflectStatus, [6, 12).\n\ntype: int16_t[2]",
18890
+ "int16_t[2]",
18891
+ )
18892
+
18266
18893
  MATCHUP_IMMUNE_MULTIPLIER = Symbol(
18267
18894
  [0x7C20],
18268
18895
  [0x22C5E40],
@@ -18272,6 +18899,15 @@ class JpOverlay10Data:
18272
18899
  "fx32_8",
18273
18900
  )
18274
18901
 
18902
+ GASTRO_ACID_TURN_RANGE = Symbol(
18903
+ [0x7C34],
18904
+ [0x22C5E54],
18905
+ 0x4,
18906
+ "GASTRO_ACID_TURN_RANGE",
18907
+ "The turn range for the Gastro Acid status, [4, 10).\n\ntype: int16_t[2]",
18908
+ "int16_t[2]",
18909
+ )
18910
+
18275
18911
  SPORT_CONDITION_TURN_RANGE = Symbol(
18276
18912
  [0x7C54],
18277
18913
  [0x22C5E74],
@@ -18299,6 +18935,15 @@ class JpOverlay10Data:
18299
18935
  "int",
18300
18936
  )
18301
18937
 
18938
+ DECOY_TURN_RANGE = Symbol(
18939
+ [0x7C7C],
18940
+ [0x22C5E9C],
18941
+ 0x4,
18942
+ "DECOY_TURN_RANGE",
18943
+ "The turn range for the Decoy status, [20, 50).\n\ntype: int16_t[2]",
18944
+ "int16_t[2]",
18945
+ )
18946
+
18302
18947
  TINTED_LENS_MULTIPLIER = Symbol(
18303
18948
  [0x7C88],
18304
18949
  [0x22C5EA8],
@@ -18434,6 +19079,15 @@ class JpOverlay10Data:
18434
19079
  "fx32_8",
18435
19080
  )
18436
19081
 
19082
+ MIRROR_MOVE_TURN_RANGE = Symbol(
19083
+ [0x7D08],
19084
+ [0x22C5F28],
19085
+ 0x4,
19086
+ "MIRROR_MOVE_TURN_RANGE",
19087
+ "The turn range for the Mirror Move status, [1, 3).\n\ntype: int16_t[2]",
19088
+ "int16_t[2]",
19089
+ )
19090
+
18437
19091
  AIR_BLADE_DAMAGE_MULTIPLIER = Symbol(
18438
19092
  [0x7D0C],
18439
19093
  [0x22C5F2C],
@@ -18470,6 +19124,15 @@ class JpOverlay10Data:
18470
19124
  "int16_t[2]",
18471
19125
  )
18472
19126
 
19127
+ CRINGE_TURN_RANGE = Symbol(
19128
+ [0x7D4C],
19129
+ [0x22C5F6C],
19130
+ 0x4,
19131
+ "CRINGE_TURN_RANGE",
19132
+ "The turn range for the Cringe status, [1, 1].\n\ntype: int16_t[2]",
19133
+ "int16_t[2]",
19134
+ )
19135
+
18473
19136
  SPEED_BOOST_TURN_RANGE = Symbol(
18474
19137
  [0x7D50],
18475
19138
  [0x22C5F70],
@@ -18479,6 +19142,24 @@ class JpOverlay10Data:
18479
19142
  "int16_t[2]",
18480
19143
  )
18481
19144
 
19145
+ SPEED_LOWER_TURN_RANGE = Symbol(
19146
+ [0x7D54],
19147
+ [0x22C5F74],
19148
+ None,
19149
+ "SPEED_LOWER_TURN_RANGE",
19150
+ "The turn range for lowered speed, [6, 8].\n\ntype: int16_t[2]",
19151
+ "int16_t[2]",
19152
+ )
19153
+
19154
+ PARALYSIS_TURN_RANGE = Symbol(
19155
+ [0x7D5C],
19156
+ [0x22C5F7C],
19157
+ None,
19158
+ "PARALYSIS_TURN_RANGE",
19159
+ "The turn range for the Paralysis status, [1, 2].\n\ntype: int16_t[2]",
19160
+ "int16_t[2]",
19161
+ )
19162
+
18482
19163
  SOLARBEAM_DAMAGE_MULTIPLIER = Symbol(
18483
19164
  [0x7D6C],
18484
19165
  [0x22C5F8C],
@@ -18893,6 +19574,10 @@ class JpOverlay10Data:
18893
19574
  "struct data_processing_instruction",
18894
19575
  )
18895
19576
 
19577
+ REFLECT_LIGHT_SCREEN_TURN_RANGE = _Deprecated(
19578
+ "REFLECT_LIGHT_SCREEN_TURN_RANGE", REFLECT_TURN_RANGE
19579
+ )
19580
+
18896
19581
 
18897
19582
  class JpOverlay10Section:
18898
19583
  name = "overlay10"
@@ -19205,6 +19890,33 @@ class JpOverlay11Functions:
19205
19890
  None,
19206
19891
  )
19207
19892
 
19893
+ GroundBgInit = Symbol(
19894
+ [0xF96C],
19895
+ [0x22ED24C],
19896
+ None,
19897
+ "GroundBgInit",
19898
+ "Initializes the ground_bg struct by setting most fields to 0 and allocating memory for sub-structs.\n\nr0: ground_bg struct pointer\nr1: Unknown sub-struct of ground_bg (offset 0x52C)",
19899
+ None,
19900
+ )
19901
+
19902
+ GroundBgFreeAll = Symbol(
19903
+ [0xFC00],
19904
+ [0x22ED4E0],
19905
+ None,
19906
+ "GroundBgFreeAll",
19907
+ "Frees memory and closes any open files in the ground_bg struct.\n\nr0: ground_bg struct pointer",
19908
+ None,
19909
+ )
19910
+
19911
+ GroundBgCloseOpenedFiles = Symbol(
19912
+ [0xFD1C],
19913
+ [0x22ED5FC],
19914
+ None,
19915
+ "GroundBgCloseOpenedFiles",
19916
+ "Closes any open files in the ground_bg struct.\n\nr0: ground_bg struct pointer",
19917
+ None,
19918
+ )
19919
+
19208
19920
  LoadMapType10 = Symbol(
19209
19921
  [0x10A78],
19210
19922
  [0x22EE358],
@@ -19223,6 +19935,15 @@ class JpOverlay11Functions:
19223
19935
  None,
19224
19936
  )
19225
19937
 
19938
+ BmaLayerNrlDecompressor = Symbol(
19939
+ [0x12028],
19940
+ [0x22EF908],
19941
+ None,
19942
+ "BmaLayerNrlDecompressor",
19943
+ "Decompresses the NRL-compressed data in a .bma file.\n\nr0: [output] Array to hold the decompressed data\nr1: Pointer to the start of the compressed .bma data to decompress\nr2: Unknown ground_bg sub-struct (offset 0x52C)\nr3: .bma file header\nreturn: Pointer at the end of the .bma data",
19944
+ None,
19945
+ )
19946
+
19226
19947
  GetSpecialLayoutBackground = Symbol(
19227
19948
  [0x152C8],
19228
19949
  [0x22F2BA8],
@@ -20132,6 +20853,15 @@ class JpOverlay11Functions:
20132
20853
  None,
20133
20854
  )
20134
20855
 
20856
+ SwapShopInventoryManager = Symbol(
20857
+ [0x2EED0],
20858
+ [0x230C7B0],
20859
+ None,
20860
+ "SwapShopInventoryManager",
20861
+ "Called primarily handle the display and preparation of the swap shop inventory list, exclusive items list, and the item trade list. \nCreates a swap_shop_inventory_data struct if one does not already exist. \nIs the child function to SwapShopDialogueManager.\n\nr0: switch case index for the function: 0 = Swap List Inventory, 1 = Unknown, 2 = Species Exclusive Item List, 3 = Item Trade Away Selection List.\nr1: Depends on r0. If case 2: ID of the monster to retrieve an exclusive item list for. If case 3: Number of Exclusive Items the player owns.",
20862
+ None,
20863
+ )
20864
+
20135
20865
  HandleControlsTopScreenGround = Symbol(
20136
20866
  [0x322E4],
20137
20867
  [0x230FBC4],
@@ -20308,6 +21038,15 @@ class JpOverlay11Data:
20308
21038
  "struct monster_id_16[22]",
20309
21039
  )
20310
21040
 
21041
+ POSITION_ZERO = Symbol(
21042
+ [0x4487C],
21043
+ [0x232215C],
21044
+ 0x8,
21045
+ "POSITION_ZERO",
21046
+ "A pixel_position struct initialized at position (0, 0). Used to initialize the camera_pixel_position field in the ground_bg struct.\n\ntype: struct pixel_position",
21047
+ "struct pixel_position",
21048
+ )
21049
+
20311
21050
  LEVEL_TILEMAP_LIST = Symbol(
20312
21051
  [0x449B0],
20313
21052
  [0x2322290],
@@ -20397,6 +21136,15 @@ class JpOverlay11Data:
20397
21136
  "struct main_ground_data",
20398
21137
  )
20399
21138
 
21139
+ SWAP_SHOP_INVENTORY_PTRS = Symbol(
21140
+ [0x48A24],
21141
+ [0x2326304],
21142
+ None,
21143
+ "SWAP_SHOP_INVENTORY_PTRS",
21144
+ "Host pointers to multiple structures used for performing internal Swap Shop checks.",
21145
+ "struct swap_shop_inventory_ptrs",
21146
+ )
21147
+
20400
21148
  WORLD_MAP_MODE = Symbol(
20401
21149
  [0x48A64],
20402
21150
  [0x2326344],
@@ -22372,7 +23120,68 @@ class JpOverlay20Section:
22372
23120
 
22373
23121
  class JpOverlay21Functions:
22374
23122
 
22375
- pass
23123
+ SwapShopDialogueManager = Symbol(
23124
+ [0x0],
23125
+ [0x238B6A0],
23126
+ None,
23127
+ "SwapShopDialogueManager",
23128
+ "Called primarily to fill dialogue boxes or display portraits, this function exists to print the next portrait, dialogue, or input for the Swap Shop. \nConsistently writes the provided input to shared_switch_case, and occasionally writes to next_switch_case. \nOften calls SwapShopInventoryManager, and is often called by SwapShopMainManager.\n\nr0: New current_switch_case value.",
23129
+ None,
23130
+ )
23131
+
23132
+ GetFirstExclusivePrerequisite = Symbol(
23133
+ [0x16B8],
23134
+ [0x238CD58],
23135
+ None,
23136
+ "GetFirstExclusivePrerequisite",
23137
+ "Retrieves the item ID of the first item needed to trade for the specified item. There are hardcoded exceptions for the Eeveelution/Hitmontrio items,\nbut outside of that, the output will be as follows.\n output_id = input_id - ((input_id - 0x1FA) % 4)\n\nr0: item ID of the exclusive item to be checked.\nreturn: item ID of the first exclusive item required to trade for the input.",
23138
+ None,
23139
+ )
23140
+
23141
+ SwapShopEntryPoint = Symbol(
23142
+ [0x1720],
23143
+ [0x238CDC0],
23144
+ None,
23145
+ "SwapShopEntryPoint",
23146
+ "Is the entrypoint of the overlay_load_entry, and seems to run once to initiate the Swap Shop. Is not called anywhere else.\nAllocates space for swap_shop_menu_data, and initializes many of its fields.\n\nreturn: Always returns 1.",
23147
+ None,
23148
+ )
23149
+
23150
+ SwapShopDestructor = Symbol(
23151
+ [0x17D4],
23152
+ [0x238CE74],
23153
+ None,
23154
+ "SwapShopDestructor",
23155
+ "Is the destructor of the overlay_load_entry, and seems to run once on closing the Swap Shop. Is not called anywhere else.\nFrees up the allocated space for swap_shop_menu_data if it is not already empty.\n\nNo params.",
23156
+ None,
23157
+ )
23158
+
23159
+ SwapShopMainManager = Symbol(
23160
+ [0x1800],
23161
+ [0x238CEA0],
23162
+ None,
23163
+ "SwapShopMainManager",
23164
+ "Called every frame the Croagunk Swap Shop is open, acting as a parent function for the various processes the Swap Shop is responsible for. \nPrimarily handles displaying dialogue boxes, retrieving menu selections, and contributing updates to the various switch case indices.\nOften calls SwapShopDialogueManager, either with an immediate or with the designated next_switch_case value. \n\nreturn: Typically returns 1, but seems to return 4 to exit the Swap Shop. Possibly related to the explorerscript output?",
23165
+ None,
23166
+ )
23167
+
23168
+ CloseTextboxAndSimpleMenu = Symbol(
23169
+ [0x27F4],
23170
+ [0x238DE94],
23171
+ None,
23172
+ "CloseTextboxAndSimpleMenu",
23173
+ "Checks both the text_window_id and menu_window_id for -2. If either are not -2, close the textbox/simple menu, and assign the id to -2.\n\nNo params.",
23174
+ None,
23175
+ )
23176
+
23177
+ SwapShopPrintCurrentGold = Symbol(
23178
+ [0x2878],
23179
+ [0x238DF18],
23180
+ None,
23181
+ "SwapShopPrintCurrentGold",
23182
+ "A text box callback function containing the player's current gold using SWAP_SHOP_GOLD_STRING, as seen on the Swap Shop main menu.\n\nr0: window_id of the textbox",
23183
+ None,
23184
+ )
22376
23185
 
22377
23186
 
22378
23187
  class JpOverlay21Data:
@@ -22382,7 +23191,7 @@ class JpOverlay21Data:
22382
23191
  [0x238DF98],
22383
23192
  None,
22384
23193
  "SWAP_SHOP_WINDOW_PARAMS_1",
22385
- "Note: unverified, ported from Irdkwia's notes",
23194
+ "Used with SwapShopPrintCurrentGold for a simple textbox.",
22386
23195
  "struct window_params",
22387
23196
  )
22388
23197
 
@@ -22391,7 +23200,7 @@ class JpOverlay21Data:
22391
23200
  [0x238DFA8],
22392
23201
  0x18,
22393
23202
  "SWAP_SHOP_MENU_ITEMS_CONFIRM",
22394
- "",
23203
+ "Used with SWAP_SHOP_WINDOW_PARAMS_7.",
22395
23204
  "struct simple_menu_id_item[3]",
22396
23205
  )
22397
23206
 
@@ -22400,7 +23209,7 @@ class JpOverlay21Data:
22400
23209
  [0x238DFC0],
22401
23210
  0x18,
22402
23211
  "SWAP_SHOP_SUBMENU_ITEMS_1",
22403
- "",
23212
+ "Used with SWAP_SHOP_WINDOW_PARAMS_6.",
22404
23213
  "struct simple_menu_id_item[3]",
22405
23214
  )
22406
23215
 
@@ -22409,7 +23218,7 @@ class JpOverlay21Data:
22409
23218
  [0x238DFD8],
22410
23219
  0x20,
22411
23220
  "SWAP_SHOP_SUBMENU_ITEMS_2",
22412
- "",
23221
+ "Used with SWAP_SHOP_WINDOW_PARAMS_7.",
22413
23222
  "struct simple_menu_id_item[4]",
22414
23223
  )
22415
23224
 
@@ -22418,7 +23227,7 @@ class JpOverlay21Data:
22418
23227
  [0x238DFF8],
22419
23228
  0x20,
22420
23229
  "SWAP_SHOP_MAIN_MENU_ITEMS_1",
22421
- "",
23230
+ "Used with SWAP_SHOP_WINDOW_PARAMS_6.",
22422
23231
  "struct simple_menu_id_item[4]",
22423
23232
  )
22424
23233
 
@@ -22427,7 +23236,7 @@ class JpOverlay21Data:
22427
23236
  [0x238E018],
22428
23237
  0x28,
22429
23238
  "SWAP_SHOP_MAIN_MENU_ITEMS_2",
22430
- "",
23239
+ "Used alongside SWAP_SHOP_WINDOW_PARAMS_5.",
22431
23240
  "struct simple_menu_id_item[5]",
22432
23241
  )
22433
23242
 
@@ -22436,7 +23245,7 @@ class JpOverlay21Data:
22436
23245
  [0x238E040],
22437
23246
  0x30,
22438
23247
  "SWAP_SHOP_SUBMENU_ITEMS_3",
22439
- "",
23248
+ "Used alongside SWAP_SHOP_WINDOW_PARAMS_9.",
22440
23249
  "struct simple_menu_id_item[6]",
22441
23250
  )
22442
23251
 
@@ -22445,8 +23254,8 @@ class JpOverlay21Data:
22445
23254
  None,
22446
23255
  None,
22447
23256
  "OVERLAY21_UNKNOWN_STRING_IDS",
22448
- "Note: unverified, ported from Irdkwia's notes",
22449
- "",
23257
+ "Seem to be completely unused by the Swap Shop, but the strings are 1:1 for the ones that are in use elsewhere in the shop.",
23258
+ "int16_t[24]",
22450
23259
  )
22451
23260
 
22452
23261
  SWAP_SHOP_WINDOW_PARAMS_2 = Symbol(
@@ -22454,7 +23263,7 @@ class JpOverlay21Data:
22454
23263
  None,
22455
23264
  None,
22456
23265
  "SWAP_SHOP_WINDOW_PARAMS_2",
22457
- "Note: unverified, ported from Irdkwia's notes",
23266
+ "Seem to be completely unused by the Swap Shop.",
22458
23267
  "struct window_params",
22459
23268
  )
22460
23269
 
@@ -22463,7 +23272,7 @@ class JpOverlay21Data:
22463
23272
  None,
22464
23273
  None,
22465
23274
  "SWAP_SHOP_WINDOW_PARAMS_3",
22466
- "Note: unverified, ported from Irdkwia's notes",
23275
+ "Seem to be completely unused by the Swap Shop.",
22467
23276
  "struct window_params",
22468
23277
  )
22469
23278
 
@@ -22472,7 +23281,7 @@ class JpOverlay21Data:
22472
23281
  None,
22473
23282
  None,
22474
23283
  "SWAP_SHOP_WINDOW_PARAMS_4",
22475
- "Note: unverified, ported from Irdkwia's notes",
23284
+ "Seem to be completely unused by the Swap Shop.",
22476
23285
  "struct window_params",
22477
23286
  )
22478
23287
 
@@ -22481,7 +23290,7 @@ class JpOverlay21Data:
22481
23290
  [0x238E0D8],
22482
23291
  None,
22483
23292
  "SWAP_SHOP_WINDOW_PARAMS_5",
22484
- "Note: unverified, ported from Irdkwia's notes",
23293
+ "Used alongside SWAP_SHOP_MAIN_MENU_ITEMS_2.",
22485
23294
  "struct window_params",
22486
23295
  )
22487
23296
 
@@ -22490,7 +23299,7 @@ class JpOverlay21Data:
22490
23299
  [0x238E0E8],
22491
23300
  None,
22492
23301
  "SWAP_SHOP_WINDOW_PARAMS_6",
22493
- "Note: unverified, ported from Irdkwia's notes",
23302
+ "Used alongside both SWAP_SHOP_MAIN_MENU_ITEMS_1 and SWAP_SHOP_SUBMENU_ITEMS_1.",
22494
23303
  "struct window_params",
22495
23304
  )
22496
23305
 
@@ -22499,7 +23308,7 @@ class JpOverlay21Data:
22499
23308
  [0x238E0F8],
22500
23309
  None,
22501
23310
  "SWAP_SHOP_WINDOW_PARAMS_7",
22502
- "Note: unverified, ported from Irdkwia's notes",
23311
+ "Used alongside both SWAP_SHOP_MENU_ITEMS_CONFIRM and SWAP_SHOP_SUBMENU_ITEMS_2.",
22503
23312
  "struct window_params",
22504
23313
  )
22505
23314
 
@@ -22508,7 +23317,7 @@ class JpOverlay21Data:
22508
23317
  [0x238E108],
22509
23318
  None,
22510
23319
  "SWAP_SHOP_WINDOW_PARAMS_8",
22511
- "Note: unverified, ported from Irdkwia's notes",
23320
+ "Used alone, seemingly for the exclusive item description window.",
22512
23321
  "struct window_params",
22513
23322
  )
22514
23323
 
@@ -22517,12 +23326,246 @@ class JpOverlay21Data:
22517
23326
  [0x238E118],
22518
23327
  None,
22519
23328
  "SWAP_SHOP_WINDOW_PARAMS_9",
22520
- "Note: unverified, ported from Irdkwia's notes",
23329
+ "Used alongside SWAP_SHOP_SUBMENU_ITEMS_3.",
22521
23330
  "struct window_params",
22522
23331
  )
22523
23332
 
23333
+ SWAP_SHOP_TALK_WELCOME_DEBUG_STRING = Symbol(
23334
+ [0x2A88],
23335
+ [0x238E128],
23336
+ None,
23337
+ "SWAP_SHOP_TALK_WELCOME_DEBUG_STRING",
23338
+ "MENU_SYNTHESIS_MODE_START:\n",
23339
+ "char[28]",
23340
+ )
23341
+
23342
+ SWAP_SHOP_MAIN_MENU_OPTIONS_DEBUG_STRING = Symbol(
23343
+ [0x2AA4],
23344
+ [0x238E144],
23345
+ None,
23346
+ "SWAP_SHOP_MAIN_MENU_OPTIONS_DEBUG_STRING",
23347
+ "MENU_SYNTHESIS_MODE_SELECTMENU:\n",
23348
+ "char[33]",
23349
+ )
23350
+
23351
+ SWAP_SHOP_TALK_CONTINUE_SWAP_DEBUG_STRING = Symbol(
23352
+ [0x2AC8],
23353
+ [0x238E168],
23354
+ None,
23355
+ "SWAP_SHOP_TALK_CONTINUE_SWAP_DEBUG_STRING",
23356
+ "MENU_SYNTHESIS_MODE_RESTART:\n",
23357
+ "char[30]",
23358
+ )
23359
+
23360
+ SWAP_SHOP_TALK_SUBINFO_DEBUG_STRING = Symbol(
23361
+ [0x2AE8],
23362
+ [0x238E188],
23363
+ None,
23364
+ "SWAP_SHOP_TALK_SUBINFO_DEBUG_STRING",
23365
+ "MENU_SYNTHESIS_MODE_EXPLANATION:\n",
23366
+ "char[34]",
23367
+ )
23368
+
23369
+ SWAP_SHOP_TALK_COME_AGAIN_DEBUG_STRING = Symbol(
23370
+ [0x2B0C],
23371
+ [0x238E1AC],
23372
+ None,
23373
+ "SWAP_SHOP_TALK_COME_AGAIN_DEBUG_STRING",
23374
+ "MENU_SYNTHESIS_MODE_THANKS:\n",
23375
+ "char[29]",
23376
+ )
23377
+
23378
+ SWAP_SHOP_TALK_LACKING_SWAP_ITEMS_DEBUG_STRING = Symbol(
23379
+ [0x2B2C],
23380
+ [0x238E1CC],
23381
+ None,
23382
+ "SWAP_SHOP_TALK_LACKING_SWAP_ITEMS_DEBUG_STRING",
23383
+ "MENU_SYNTHESIS_MODE_ITEM_NON:\n",
23384
+ "char[31]",
23385
+ )
23386
+
23387
+ SWAP_SHOP_TALK_SWAP_BROKE_DEBUG_STRING = Symbol(
23388
+ [0x2B4C],
23389
+ [0x238E1EC],
23390
+ None,
23391
+ "SWAP_SHOP_TALK_SWAP_BROKE_DEBUG_STRING",
23392
+ "MENU_SYNTHESIS_MODE_GOLD_NON\n",
23393
+ "char[30]",
23394
+ )
23395
+
23396
+ SWAP_SHOP_TALK_SWAP_POOR_DEBUG_STRING = Symbol(
23397
+ [0x2B6C],
23398
+ [0x238E20C],
23399
+ None,
23400
+ "SWAP_SHOP_TALK_SWAP_POOR_DEBUG_STRING",
23401
+ "MENU_SYNTHESIS_GOLD",
23402
+ "char[19]",
23403
+ )
23404
+
23405
+ SWAP_SHOP_UNK_8_DEBUG_STRING = Symbol(
23406
+ [0x2B90],
23407
+ [0x238E230],
23408
+ None,
23409
+ "SWAP_SHOP_UNK_8_DEBUG_STRING",
23410
+ "MENU_SYNTHESIS_MODE_SELECT_FULL:\n",
23411
+ "char[34]",
23412
+ )
23413
+
23414
+ SWAP_SHOP_CLOSE_SHOP_DEBUG_STRING = Symbol(
23415
+ [0x2BB4],
23416
+ [0x238E254],
23417
+ None,
23418
+ "SWAP_SHOP_CLOSE_SHOP_DEBUG_STRING",
23419
+ "MENU_SYNTHESIS_MODE_QUIT\n",
23420
+ "char[26]",
23421
+ )
23422
+
23423
+ SWAP_SHOP_TALK_WHAT_ITEMS_DEBUG_STRING = Symbol(
23424
+ [0x2BD0],
23425
+ [0x238E270],
23426
+ None,
23427
+ "SWAP_SHOP_TALK_WHAT_ITEMS_DEBUG_STRING",
23428
+ "MENU_SYNTHESIS_MODE_SELECT_START:\n",
23429
+ "char[35]",
23430
+ )
23431
+
23432
+ SWAP_SHOP_TALK_VALUABLE_SWAP_DEBUG_STRING = Symbol(
23433
+ [0x2BF4],
23434
+ [0x238E294],
23435
+ None,
23436
+ "SWAP_SHOP_TALK_VALUABLE_SWAP_DEBUG_STRING",
23437
+ "MENU_SYNTHESIS_MODE__RESTART:\n",
23438
+ "char[31]",
23439
+ )
23440
+
23441
+ SWAP_SHOP_INIT_SWAP_ITEMS_MENU_DEBUG_STRING = Symbol(
23442
+ [0x2C14],
23443
+ [0x238E2B4],
23444
+ None,
23445
+ "SWAP_SHOP_INIT_SWAP_ITEMS_MENU_DEBUG_STRING",
23446
+ "MENU_SYNTHESIS_MODE_SELECT_INIT:\n",
23447
+ "char[34]",
23448
+ )
23449
+
23450
+ SWAP_SHOP_SWAP_ITEMS_MENU_DEBUG_STRING = Symbol(
23451
+ [0x2C38],
23452
+ [0x238E2D8],
23453
+ None,
23454
+ "SWAP_SHOP_SWAP_ITEMS_MENU_DEBUG_STRING",
23455
+ "MENU_SYNTHESIS_MODE_SELECT_SELECT:\n",
23456
+ "char[36]",
23457
+ )
23458
+
23459
+ SWAP_SHOP_RETURN_SWAP_ITEMS_MENU_DEBUG_STRING = Symbol(
23460
+ [0x2C5C],
23461
+ [0x238E2FC],
23462
+ None,
23463
+ "SWAP_SHOP_RETURN_SWAP_ITEMS_MENU_DEBUG_STRING",
23464
+ "MENU_SYNTHESIS_MODE_SELECT_RESELECT:\n",
23465
+ "char[38]",
23466
+ )
23467
+
23468
+ SWAP_SHOP_SELECT_SWAP_ITEM_OPTIONS_DEBUG_STRING = Symbol(
23469
+ [0x2C84],
23470
+ [0x238E324],
23471
+ None,
23472
+ "SWAP_SHOP_SELECT_SWAP_ITEM_OPTIONS_DEBUG_STRING",
23473
+ "\tMENU_SYNTHESIS_MODE_SELECT_SUB_MENU:\n",
23474
+ "char[40]",
23475
+ )
23476
+
23477
+ SWAP_SHOP_SWAP_ITEM_GET_INFO_DEBUG_STRING = Symbol(
23478
+ [0x2CAC],
23479
+ [0x238E34C],
23480
+ None,
23481
+ "SWAP_SHOP_SWAP_ITEM_GET_INFO_DEBUG_STRING",
23482
+ "MENU_SYNTHESIS_MODE_SELECT_EXPLA\n",
23483
+ "char[34]",
23484
+ )
23485
+
23486
+ SWAP_SHOP_ITEM_ZERO_STRING = Symbol(
23487
+ [0x2CD0], [0x238E370], None, "SWAP_SHOP_ITEM_ZERO_STRING", "[item:0]", "char[8]"
23488
+ )
23489
+
23490
+ SWAP_SHOP_TALK_CONFIRM_SWAP_DEBUG_STRING = Symbol(
23491
+ [0x2CDC],
23492
+ [0x238E37C],
23493
+ None,
23494
+ "SWAP_SHOP_TALK_CONFIRM_SWAP_DEBUG_STRING",
23495
+ "MENU_SYNTHESIS_MODE_SELECT_CONFIRM_1:\n",
23496
+ "char[39]",
23497
+ )
23498
+
23499
+ SWAP_SHOP_CONFIRM_CHOICE_DEBUG_STRING = Symbol(
23500
+ [0x2D04],
23501
+ [0x238E3A4],
23502
+ None,
23503
+ "SWAP_SHOP_CONFIRM_CHOICE_DEBUG_STRING",
23504
+ "_SELL_CONFIRM NEW_1\n",
23505
+ "char[21]",
23506
+ )
23507
+
23508
+ SWAP_SHOP_INIT_SCRIPT_ACTION_1_DEBUG_STRING = Symbol(
23509
+ [0x2D1C],
23510
+ [0x238E3BC],
23511
+ None,
23512
+ "SWAP_SHOP_INIT_SCRIPT_ACTION_1_DEBUG_STRING",
23513
+ "MENU_SYNTHESIS_MODE_SELECT_THANKS_ACTION:\n",
23514
+ "char[43]",
23515
+ )
23516
+
23517
+ SWAP_SHOP_INIT_SCRIPT_ACTION_2_DEBUG_STRING = Symbol(
23518
+ [0x2D48],
23519
+ [0x238E3E8],
23520
+ None,
23521
+ "SWAP_SHOP_INIT_SCRIPT_ACTION_2_DEBUG_STRING",
23522
+ "MENU_SYNTHESIS_MODE_SELECT_THANKS_ACTION2:\n",
23523
+ "char[44]",
23524
+ )
23525
+
23526
+ SWAP_SHOP_INIT_SCRIPT_ACTION_3_DEBUG_STRING = Symbol(
23527
+ [0x2D74],
23528
+ [0x238E414],
23529
+ None,
23530
+ "SWAP_SHOP_INIT_SCRIPT_ACTION_3_DEBUG_STRING",
23531
+ "MENU_SYNTHESIS_MODE_SELECT_THANKS_ACTION3:\n",
23532
+ "char[44]",
23533
+ )
23534
+
23535
+ SWAP_SHOP_TEXT_PUT_IN_CAULDRON_DEBUG_STRING = Symbol(
23536
+ [0x2DA0],
23537
+ [0x238E440],
23538
+ None,
23539
+ "SWAP_SHOP_TEXT_PUT_IN_CAULDRON_DEBUG_STRING",
23540
+ "MENU_SYNTHESIS_MODE_SELECT_THANKS_1:\n",
23541
+ "char[38]",
23542
+ )
23543
+
23544
+ SWAP_SHOP_DO_SWAP_THEN_TALK_DEBUG_STRING = Symbol(
23545
+ [0x2DC8],
23546
+ [0x238E468],
23547
+ None,
23548
+ "SWAP_SHOP_DO_SWAP_THEN_TALK_DEBUG_STRING",
23549
+ "MENU_SYNTHESIS_MODE_SELECT_THANKS:\n",
23550
+ "char[36]",
23551
+ )
23552
+
22524
23553
  OVERLAY21_JP_STRING = Symbol(
22525
- [0x2DEC], [0x238E48C], None, "OVERLAY21_JP_STRING", "合成:", ""
23554
+ [0x2DEC],
23555
+ [0x238E48C],
23556
+ None,
23557
+ "OVERLAY21_JP_STRING",
23558
+ "合成:(synthesis in Japanese)",
23559
+ "wchar_t[3]",
23560
+ )
23561
+
23562
+ SWAP_SHOP_GOLD_STRING = Symbol(
23563
+ [0x2DF4],
23564
+ [0x238E494],
23565
+ None,
23566
+ "SWAP_SHOP_GOLD_STRING",
23567
+ "[CS:V][gold:0][CR]",
23568
+ "char[18]",
22526
23569
  )
22527
23570
 
22528
23571
  OVERLAY21_RESERVED_SPACE = Symbol(
@@ -22531,16 +23574,16 @@ class JpOverlay21Data:
22531
23574
  None,
22532
23575
  "OVERLAY21_RESERVED_SPACE",
22533
23576
  "Note: unverified, ported from Irdkwia's notes",
22534
- "",
23577
+ "undefined[8]",
22535
23578
  )
22536
23579
 
22537
- OVERLAY21_UNKNOWN_POINTER__NA_238CF40 = Symbol(
23580
+ SWAP_SHOP_MENU_DATA_PTR = Symbol(
22538
23581
  [0x2E20],
22539
23582
  [0x238E4C0],
22540
23583
  None,
22541
- "OVERLAY21_UNKNOWN_POINTER__NA_238CF40",
22542
- "Note: unverified, ported from Irdkwia's notes",
22543
- "",
23584
+ "SWAP_SHOP_MENU_DATA_PTR",
23585
+ "Pointer to the swap_shop_menu_data that governs the operations of most overlay_21 functions.",
23586
+ "struct swap_shop_menu_data*",
22544
23587
  )
22545
23588
 
22546
23589
  OVERLAY21_UNKNOWN_POINTER__NA_238CF44 = Symbol(
@@ -22549,7 +23592,7 @@ class JpOverlay21Data:
22549
23592
  None,
22550
23593
  "OVERLAY21_UNKNOWN_POINTER__NA_238CF44",
22551
23594
  "Note: unverified, ported from Irdkwia's notes",
22552
- "",
23595
+ "undefined*",
22553
23596
  )
22554
23597
 
22555
23598
 
@@ -23696,6 +24739,15 @@ class JpOverlay29Functions:
23696
24739
  None,
23697
24740
  )
23698
24741
 
24742
+ FloorSecondaryTerrainIsChasm = Symbol(
24743
+ [0x4130],
24744
+ [0x22E1A10],
24745
+ None,
24746
+ "FloorSecondaryTerrainIsChasm",
24747
+ "Returns true if the current floor has a chasm secondary terrain, checking first if floor_generation_status::has_chasms_as_secondary_terrain is true\nand if not, whether the tileset's entry in SECONDARY_TERRAIN_TYPES is SECONDARY_TERRAIN_CHASM.\n\nr0: tileset id\nreturn: bool",
24748
+ None,
24749
+ )
24750
+
23699
24751
  GetFloorType = Symbol(
23700
24752
  [0x4168],
23701
24753
  [0x22E1A48],
@@ -23777,6 +24829,24 @@ class JpOverlay29Functions:
23777
24829
  None,
23778
24830
  )
23779
24831
 
24832
+ SetDungeonEscapeFields = Symbol(
24833
+ [0x4798],
24834
+ [0x22E2078],
24835
+ None,
24836
+ "SetDungeonEscapeFields",
24837
+ "Sets the successful_exit_tracker and end_floor_no_death_check_flag fields of the dungeon struct.\n\nr0: new successful_exit_tracker\nr1: new end_floor_no_death_check_flag",
24838
+ None,
24839
+ )
24840
+
24841
+ GetSuccessfulExitTracker = Symbol(
24842
+ [0x47B4],
24843
+ [0x22E2094],
24844
+ None,
24845
+ "GetSuccessfulExitTracker",
24846
+ "Returns the successful_exit_tracker field of the dungeon struct.\n\nreturn: successful_exit_tracker",
24847
+ None,
24848
+ )
24849
+
23780
24850
  CheckTouchscreenArea = Symbol(
23781
24851
  [0x4A68],
23782
24852
  [0x22E2348],
@@ -23944,7 +25014,7 @@ class JpOverlay29Functions:
23944
25014
  [0x22E416C],
23945
25015
  None,
23946
25016
  "SubstitutePlaceholderStringTags",
23947
- "Replaces instances of a given placeholder tag by the string representation of the given entity.\n\nFrom the eos-move-effects docs (which are somewhat nebulous): 'Replaces the string at StringID [r0] by the string representation of the target [r1] (aka its name). Any message with the string manipulator '[string:StringID]' will use that string'.\n\nThe game uses various placeholder tags in its strings, which you can read about here: https://textbox.skytemple.org/.\n\nr0: string ID (unclear what this means)\nr1: entity pointer\nr2: ?",
25017
+ "Replaces instances of a given placeholder tag by the string representation of the given entity.\n\nFrom the eos-move-effects docs (which are somewhat nebulous): 'Replaces the string at StringID [r0] by the string representation of the target [r1] (aka its name). Any message with the string manipulator '[string:StringID]' will use that string'.\n\nThe game uses various placeholder tags in its strings, which you can read about here: https://textbox.skytemple.org/.\n\nr0: string ID (unclear what this means)\nr1: entity pointer\nr2: unused",
23948
25018
  None,
23949
25019
  )
23950
25020
 
@@ -24111,6 +25181,15 @@ class JpOverlay29Functions:
24111
25181
  None,
24112
25182
  )
24113
25183
 
25184
+ PlayParalysisEffect = Symbol(
25185
+ [0x7FD0],
25186
+ [0x22E58B0],
25187
+ None,
25188
+ "PlayParalysisEffect",
25189
+ "Displays the graphical effect on a monster that just became paralyzed.\n\nr0: entity pointer",
25190
+ None,
25191
+ )
25192
+
24114
25193
  PlayEffectAnimationEntityStandard = Symbol(
24115
25194
  [0x8078],
24116
25195
  [0x22E5958],
@@ -24120,6 +25199,24 @@ class JpOverlay29Functions:
24120
25199
  None,
24121
25200
  )
24122
25201
 
25202
+ PlaySpeedUpEffect = Symbol(
25203
+ [0x825C],
25204
+ [0x22E5B3C],
25205
+ None,
25206
+ "PlaySpeedUpEffect",
25207
+ "Displays the graphical effect on a monster that just raised movement speed.\n\nr0: entity pointer",
25208
+ None,
25209
+ )
25210
+
25211
+ PlaySpeedDownEffect = Symbol(
25212
+ [0x82AC],
25213
+ [0x22E5B8C],
25214
+ None,
25215
+ "PlaySpeedDownEffect",
25216
+ "Displays the graphical effect on a monster that just lowered movement speed.\n\nr0: entity pointer",
25217
+ None,
25218
+ )
25219
+
24123
25220
  ShowPpRestoreEffect = Symbol(
24124
25221
  [0x86F4],
24125
25222
  [0x22E5FD4],
@@ -24129,6 +25226,105 @@ class JpOverlay29Functions:
24129
25226
  None,
24130
25227
  )
24131
25228
 
25229
+ PlayOffensiveStatDownEffect = Symbol(
25230
+ [0x8AB8],
25231
+ [0x22E6398],
25232
+ None,
25233
+ "PlayOffensiveStatDownEffect",
25234
+ "Displays the graphical effect on a monster that just lowered an offensive stat.\n\nr0: entity pointer\nr1: stat index",
25235
+ None,
25236
+ )
25237
+
25238
+ PlayDefensiveStatDownEffect = Symbol(
25239
+ [0x8B5C],
25240
+ [0x22E643C],
25241
+ None,
25242
+ "PlayDefensiveStatDownEffect",
25243
+ "Displays the graphical effect on a monster that just lowered a defensive stat.\n\nr0: entity pointer\nr1: stat index",
25244
+ None,
25245
+ )
25246
+
25247
+ PlayOffensiveStatUpEffect = Symbol(
25248
+ [0x8C04],
25249
+ [0x22E64E4],
25250
+ None,
25251
+ "PlayOffensiveStatUpEffect",
25252
+ "Displays the graphical effect on a monster that just raised an offensive stat.\n\nr0: entity pointer\nr1: stat index",
25253
+ None,
25254
+ )
25255
+
25256
+ PlayDefensiveStatUpEffect = Symbol(
25257
+ [0x8CAC],
25258
+ [0x22E658C],
25259
+ None,
25260
+ "PlayDefensiveStatUpEffect",
25261
+ "Displays the graphical effect on a monster that just raised a defensive stat.\n\nr0: entity pointer\nr1: stat index",
25262
+ None,
25263
+ )
25264
+
25265
+ PlayOffensiveStatMultiplierUpEffect = Symbol(
25266
+ [0x8D50],
25267
+ [0x22E6630],
25268
+ None,
25269
+ "PlayOffensiveStatMultiplierUpEffect",
25270
+ "Displays the graphical effect on a monster that just raised an offensive stat multiplier.\n\nr0: entity pointer\nr1: stat index",
25271
+ None,
25272
+ )
25273
+
25274
+ PlayOffensiveStatMultiplierDownEffect = Symbol(
25275
+ [0x8DF8],
25276
+ [0x22E66D8],
25277
+ None,
25278
+ "PlayOffensiveStatMultiplierDownEffect",
25279
+ "Displays the graphical effect on a monster that just lowered an offensive stat multiplier.\n\nr0: entity pointer\nr1: stat index",
25280
+ None,
25281
+ )
25282
+
25283
+ PlayDefensiveStatMultiplierUpEffect = Symbol(
25284
+ [0x8E9C],
25285
+ [0x22E677C],
25286
+ None,
25287
+ "PlayDefensiveStatMultiplierUpEffect",
25288
+ "Displays the graphical effect on a monster that just raised a defensive stat multiplier.\n\nr0: entity pointer\nr1: stat index",
25289
+ None,
25290
+ )
25291
+
25292
+ PlayDefensiveStatMultiplierDownEffect = Symbol(
25293
+ [0x8F40],
25294
+ [0x22E6820],
25295
+ None,
25296
+ "PlayDefensiveStatMultiplierDownEffect",
25297
+ "Displays the graphical effect on a monster that just lowered a defensive stat multiplier.\n\nr0: entity pointer\nr1: stat index",
25298
+ None,
25299
+ )
25300
+
25301
+ PlayHitChanceUpEffect = Symbol(
25302
+ [0x8FE8],
25303
+ [0x22E68C8],
25304
+ None,
25305
+ "PlayHitChanceUpEffect",
25306
+ "Displays the graphical effect on a monster that just raised a hit chance stat.\n\nr0: entity pointer\nr1: stat index",
25307
+ None,
25308
+ )
25309
+
25310
+ PlayHitChanceDownEffect = Symbol(
25311
+ [0x9088],
25312
+ [0x22E6968],
25313
+ None,
25314
+ "PlayHitChanceDownEffect",
25315
+ "Displays the graphical effect on a monster that just lowered a hit chance stat.\n\nr0: entity pointer\nr1: stat index",
25316
+ None,
25317
+ )
25318
+
25319
+ PlaySeByIdIfShouldDisplayEntity = Symbol(
25320
+ [0x9430],
25321
+ [0x22E6D10],
25322
+ None,
25323
+ "PlaySeByIdIfShouldDisplayEntity",
25324
+ "Plays the specified sound effect if ShouldDisplayEntityAdvanced returns true for the entity (or if the entity pointer is null).\n\nr0: entity pointer\nr1: Sound effect ID",
25325
+ None,
25326
+ )
25327
+
24132
25328
  ShouldDisplayEntityAdvanced = Symbol(
24133
25329
  [0x9C60],
24134
25330
  [0x22E7540],
@@ -24174,6 +25370,15 @@ class JpOverlay29Functions:
24174
25370
  None,
24175
25371
  )
24176
25372
 
25373
+ GetRandomTrapId = Symbol(
25374
+ [0xB818],
25375
+ [0x22E90F8],
25376
+ None,
25377
+ "GetRandomTrapId",
25378
+ "Gets the id of the trap to be used as the effect of a Random Trap.\n\nreturn: trap id",
25379
+ None,
25380
+ )
25381
+
24177
25382
  GetItemIdToSpawn = Symbol(
24178
25383
  [0xB850],
24179
25384
  [0x22E9130],
@@ -24336,6 +25541,15 @@ class JpOverlay29Functions:
24336
25541
  None,
24337
25542
  )
24338
25543
 
25544
+ IsPositionWithinTwoTiles = Symbol(
25545
+ [0xD0E4],
25546
+ [0x22EA9C4],
25547
+ None,
25548
+ "IsPositionWithinTwoTiles",
25549
+ "Checks if a given target position is within two tiles of a given origin position.\n\nr0: Origin position\nr1: Target position\nreturn: True if the target position within two tiles of the origin position.",
25550
+ None,
25551
+ )
25552
+
24339
25553
  GetLeader = Symbol(
24340
25554
  [0xD308],
24341
25555
  [0x22EABE8],
@@ -24543,6 +25757,15 @@ class JpOverlay29Functions:
24543
25757
  None,
24544
25758
  )
24545
25759
 
25760
+ PlaySeByIdIfNotSilence = Symbol(
25761
+ [0xEA54],
25762
+ [0x22EC334],
25763
+ None,
25764
+ "PlaySeByIdIfNotSilence",
25765
+ "Plays the specified sound effect if it is not the designated silence value (0x3F00).\n\nr0: Sound effect ID",
25766
+ None,
25767
+ )
25768
+
24546
25769
  MusicTableIdxToMusicId = Symbol(
24547
25770
  [0xEA88],
24548
25771
  [0x22EC368],
@@ -24570,6 +25793,15 @@ class JpOverlay29Functions:
24570
25793
  None,
24571
25794
  )
24572
25795
 
25796
+ ResetLeaderActionFields = Symbol(
25797
+ [0xF120],
25798
+ [0x22ECA00],
25799
+ None,
25800
+ "ResetLeaderActionFields",
25801
+ "Resets the leader monster's action_id fields to 0.\n\nr0: whether to also set the action_use_idx fields of the action_parameters structs and the arc_item_target_pos fields to 0",
25802
+ None,
25803
+ )
25804
+
24573
25805
  SetLeaderActionFields = Symbol(
24574
25806
  [0xF150],
24575
25807
  [0x22ECA30],
@@ -24786,6 +26018,15 @@ class JpOverlay29Functions:
24786
26018
  None,
24787
26019
  )
24788
26020
 
26021
+ SpawnTraps = Symbol(
26022
+ [0x1160C],
26023
+ [0x22EEEEC],
26024
+ None,
26025
+ "SpawnTraps",
26026
+ "Spawns a new dungeon floor's traps.\n\nNo params.",
26027
+ None,
26028
+ )
26029
+
24789
26030
  SpawnEnemyTrapAtPos = Symbol(
24790
26031
  [0x116F4],
24791
26032
  [0x22EEFD4],
@@ -24804,6 +26045,15 @@ class JpOverlay29Functions:
24804
26045
  None,
24805
26046
  )
24806
26047
 
26048
+ CanLayTrap = Symbol(
26049
+ [0x119B4],
26050
+ [0x22EF294],
26051
+ None,
26052
+ "CanLayTrap",
26053
+ "Checks if a trap can be placed on the tile.\n\nr0: position\nreturn: true if a trap can be spawned at the given position.",
26054
+ None,
26055
+ )
26056
+
24807
26057
  TrySpawnTrap = Symbol(
24808
26058
  [0x11A40],
24809
26059
  [0x22EF320],
@@ -24831,6 +26081,33 @@ class JpOverlay29Functions:
24831
26081
  None,
24832
26082
  )
24833
26083
 
26084
+ TryRevealAttackedTrap = Symbol(
26085
+ [0x11C60],
26086
+ [0x22EF540],
26087
+ None,
26088
+ "TryRevealAttackedTrap",
26089
+ "Reveals the trap given by the position if the dungeon struct's regular_attack_reveal_traps field is true.\n\nIs also activated on a tile if a fainted monster drops an item on it.\n\nr0: position struct pointer\nr1: boolean for whether to update trap visibility afterwards (always 1 in practice)\nreturn: true if there is a trap on the position",
26090
+ None,
26091
+ )
26092
+
26093
+ SubstitutePlaceholderTrapTags2 = Symbol(
26094
+ [0x11CE0],
26095
+ [0x22EF5C0],
26096
+ None,
26097
+ "SubstitutePlaceholderTrapTags2",
26098
+ "Used in TryTriggerTrap. Has the same functionality as SubstitutePlaceholderTrapTags.\n\nr1: tag id\nr2: trap id",
26099
+ None,
26100
+ )
26101
+
26102
+ SubstitutePlaceholderTrapTags = Symbol(
26103
+ [0x11D00],
26104
+ [0x22EF5E0],
26105
+ None,
26106
+ "SubstitutePlaceholderTrapTags",
26107
+ "Used in SubstitutePlaceholderStringTags. Substitutes a [trap:r1] tag in a message log message for the name of a trap.\n\nr0: preprocessor_args pointer (in practice, always the global struct used for the message log)\nr1: tag id\nr2: trap id",
26108
+ None,
26109
+ )
26110
+
24834
26111
  TryTriggerTrap = Symbol(
24835
26112
  [0x11D24],
24836
26113
  [0x22EF604],
@@ -24957,6 +26234,15 @@ class JpOverlay29Functions:
24957
26234
  None,
24958
26235
  )
24959
26236
 
26237
+ SpawnMonstersAroundPos = Symbol(
26238
+ [0x131D8],
26239
+ [0x22F0AB8],
26240
+ None,
26241
+ "SpawnMonstersAroundPos",
26242
+ "Spawns a given number of monsters around a position. Used by the Summon Trap and Grudge Trap.\n\nr0: entity pointer (unused)\nr1: position\nr2: number of enemies to spawn\nreturn: number of enemies that have actually been spawned",
26243
+ None,
26244
+ )
26245
+
24960
26246
  RevealTrapsNearby = Symbol(
24961
26247
  [0x132FC],
24962
26248
  [0x22F0BDC],
@@ -24993,6 +26279,15 @@ class JpOverlay29Functions:
24993
26279
  None,
24994
26280
  )
24995
26281
 
26282
+ IsBehaviorLoneOutlaw = Symbol(
26283
+ [0x1380C],
26284
+ [0x22F10EC],
26285
+ None,
26286
+ "IsBehaviorLoneOutlaw",
26287
+ "Checks if a behavior ID corresponds to one of the outlaw types that are not from an outlaw team. I.e., BEHAVIOR_OUTLAW, BEHAVIOR_HIDDEN_OUTLAW, or BEHAVIOR_FLEEING_OUTLAW.\n\nr0: monster behavior ID\nreturn: bool",
26288
+ None,
26289
+ )
26290
+
24996
26291
  IsSecretBazaarNpcBehavior = Symbol(
24997
26292
  [0x13828],
24998
26293
  [0x22F1108],
@@ -25011,6 +26306,15 @@ class JpOverlay29Functions:
25011
26306
  None,
25012
26307
  )
25013
26308
 
26309
+ GetLeaderActionId = Symbol(
26310
+ [0x148BC],
26311
+ [0x22F219C],
26312
+ None,
26313
+ "GetLeaderActionId",
26314
+ "Gets the current action id of the leader monster's action data.\n\nreturn: action_id",
26315
+ None,
26316
+ )
26317
+
25014
26318
  GetEntityTouchscreenArea = Symbol(
25015
26319
  [0x148CC],
25016
26320
  [0x22F21AC],
@@ -25065,6 +26369,15 @@ class JpOverlay29Functions:
25065
26369
  None,
25066
26370
  )
25067
26371
 
26372
+ HandleHeldItemSwaps = Symbol(
26373
+ [0x182E4],
26374
+ [0x22F5BC4],
26375
+ None,
26376
+ "HandleHeldItemSwaps",
26377
+ "Handles giving/taking held items to/from a party member (and likely other things).\n\nr0: entity pointer",
26378
+ None,
26379
+ )
26380
+
25068
26381
  UseSingleUseItemWrapper = Symbol(
25069
26382
  [0x18FE4],
25070
26383
  [0x22F68C4],
@@ -25263,12 +26576,12 @@ class JpOverlay29Functions:
25263
26576
  None,
25264
26577
  )
25265
26578
 
25266
- CreateMonsterSummaryFromMonster = Symbol(
26579
+ CreateMonsterSummaryFromEntity = Symbol(
25267
26580
  [0x1C6B0],
25268
26581
  [0x22F9F90],
25269
26582
  None,
25270
- "CreateMonsterSummaryFromMonster",
25271
- "Creates a snapshot of the condition of a monster struct in a monster_summary struct.\n\nr0: [output] monster_summary\nr1: monster",
26583
+ "CreateMonsterSummaryFromEntity",
26584
+ "Creates a snapshot of the condition of a monster struct in a monster_summary struct.\n\nr0: [output] monster_summary\nr1: monster_entity",
25272
26585
  None,
25273
26586
  )
25274
26587
 
@@ -25597,6 +26910,33 @@ class JpOverlay29Functions:
25597
26910
  None,
25598
26911
  )
25599
26912
 
26913
+ IsHero = Symbol(
26914
+ [0x1F2D8],
26915
+ [0x22FCBB8],
26916
+ None,
26917
+ "IsHero",
26918
+ "Checks if an entity is the hero, returning true if the 'Joined At' field of its monster struct is DUNGEON_JOINED_AT_QUESTION_MARKS (reserved for the hero).\n\nr0: entity pointer\nreturn: bool",
26919
+ None,
26920
+ )
26921
+
26922
+ IsSpecialStoryAllyOrClient = Symbol(
26923
+ [0x1F664],
26924
+ [0x22FCF44],
26925
+ None,
26926
+ "IsSpecialStoryAllyOrClient",
26927
+ "Same as IsSpecialStoryAlly, except taking an entity pointer and also checking if it is a client.\n\nr0: entity pointer\nreturn: bool",
26928
+ None,
26929
+ )
26930
+
26931
+ ResetTriggerFlags = Symbol(
26932
+ [0x1F6A8],
26933
+ [0x22FCF88],
26934
+ None,
26935
+ "ResetTriggerFlags",
26936
+ "Resets a monster's contact_ability_trigger_bitflags and exclusive_item_trigger_bitflags fields to 0.\n\nr0: entity pointer",
26937
+ None,
26938
+ )
26939
+
25600
26940
  IsSpecialStoryAlly = Symbol(
25601
26941
  [0x1F6C4],
25602
26942
  [0x22FCFA4],
@@ -25615,6 +26955,33 @@ class JpOverlay29Functions:
25615
26955
  None,
25616
26956
  )
25617
26957
 
26958
+ IsMonsterLoneOutlaw = Symbol(
26959
+ [0x1F8F0],
26960
+ [0x22FD1D0],
26961
+ None,
26962
+ "IsMonsterLoneOutlaw",
26963
+ "Checks if a monster's behavior corresponds to one of the outlaw types that are not from an outlaw team. I.e., BEHAVIOR_OUTLAW, BEHAVIOR_HIDDEN_OUTLAW, or BEHAVIOR_FLEEING_OUTLAW.\n\nr0: monster pointer\nreturn: bool",
26964
+ None,
26965
+ )
26966
+
26967
+ IsSecretBazaarNpc = Symbol(
26968
+ [0x1F900],
26969
+ [0x22FD1E0],
26970
+ None,
26971
+ "IsSecretBazaarNpc",
26972
+ "Checks if an entity is a Secret Bazaar NPCs.\n\nr0: entity pointer\nreturn: bool",
26973
+ None,
26974
+ )
26975
+
26976
+ IsTeamMemberOnFirstTurnInFixedRoom = Symbol(
26977
+ [0x1F914],
26978
+ [0x22FD1F4],
26979
+ None,
26980
+ "IsTeamMemberOnFirstTurnInFixedRoom",
26981
+ "Returns true if a monster is a team member, it is the first turn of the current floor, and the floor is a fixed room.\n\nr0: monster pointer\nreturn: bool",
26982
+ None,
26983
+ )
26984
+
25618
26985
  InitOtherMonsterData = Symbol(
25619
26986
  [0x1F968],
25620
26987
  [0x22FD248],
@@ -25813,6 +27180,15 @@ class JpOverlay29Functions:
25813
27180
  None,
25814
27181
  )
25815
27182
 
27183
+ CanMoveThroughWalls = Symbol(
27184
+ [0x233F8],
27185
+ [0x2300CD8],
27186
+ None,
27187
+ "CanMoveThroughWalls",
27188
+ "Checks if a given monster can move through walls, including both the innate ability of Ghost types and outside modifiers like Mobile Scarf/Orb.\n\nr0: Entity pointer\nreturn: True if the monster can move through walls.",
27189
+ None,
27190
+ )
27191
+
25816
27192
  CannotStandOnTile = Symbol(
25817
27193
  [0x237CC],
25818
27194
  [0x23010AC],
@@ -25854,7 +27230,7 @@ class JpOverlay29Functions:
25854
27230
  None,
25855
27231
  None,
25856
27232
  "GetMonsterDisplayNameType",
25857
- "Determines how the name of a monster should be displayed.\n\nr0: Entity pointer\nreturn: Display name type",
27233
+ "Determines how the name of a monster should be displayed.\n\nr0: Monster pointer\nreturn: Display name type",
25858
27234
  None,
25859
27235
  )
25860
27236
 
@@ -25876,6 +27252,15 @@ class JpOverlay29Functions:
25876
27252
  None,
25877
27253
  )
25878
27254
 
27255
+ SetPreprocessorArgsStringToName = Symbol(
27256
+ [0x23F34],
27257
+ [0x2301814],
27258
+ None,
27259
+ "SetPreprocessorArgsStringToName",
27260
+ "Sets a strings element in a preprocessor_args struct to the name of a monster.\n\nr0: preprocessor_args pointer (if this is null, will use the global message log preprocessor_args struct)\nr1: position in strings array\nr2: monster pointer\nr3: unused\nstack[0]: if 0, will call GetMonsterName; if 1, will call GetMonsterNameWithGender; the 2 case is unknown and seemingly unused.",
27261
+ None,
27262
+ )
27263
+
25879
27264
  IsMonsterDrowsy = Symbol(
25880
27265
  [0x23FB4],
25881
27266
  [0x2301894],
@@ -25984,9 +27369,18 @@ class JpOverlay29Functions:
25984
27369
  None,
25985
27370
  )
25986
27371
 
27372
+ MonsterHasQuarterHp = Symbol(
27373
+ [0x242E0],
27374
+ [0x2301BC0],
27375
+ None,
27376
+ "MonsterHasQuarterHp",
27377
+ "Checks if a monster has a quarter or less HP remaining.\n\nr0: entity pointer\nreturn: bool",
27378
+ None,
27379
+ )
27380
+
25987
27381
  CheckVariousStatuses2 = Symbol(
25988
- [0x2431C],
25989
- [0x2301BFC],
27382
+ [0x2431C, 0x243E0],
27383
+ [0x2301BFC, 0x2301CC0],
25990
27384
  None,
25991
27385
  "CheckVariousStatuses2",
25992
27386
  "Returns 0 if none of these conditions holds for the given entity:\nblinded (checked only if blind_check == 1),\nasleep, frozen, paused, infatuated, wrapping, wrapped, biding, petrified, or terrified.\n\nr0: Entity pointer\nr1: If true, return 1 if entity is blinded\nreturn: bool",
@@ -25994,8 +27388,8 @@ class JpOverlay29Functions:
25994
27388
  )
25995
27389
 
25996
27390
  CheckVariousConditions = Symbol(
25997
- [0x24644],
25998
- [0x2301F24],
27391
+ [0x24644, 0x246FC],
27392
+ [0x2301F24, 0x2301FDC],
25999
27393
  None,
26000
27394
  "CheckVariousConditions",
26001
27395
  "Returns 0 if none of these conditions holds for the given entity: is a rescue client,\ndoesn’t gain experience (a mission client/story teammate?), is a terrified non-team-leader,\nmeets any of the conditions in CheckVariousStatuses2 (with blind_check = 0), is charging a two-turn move.\n\nr0: Entity pointer\nreturn: bool",
@@ -26003,8 +27397,8 @@ class JpOverlay29Functions:
26003
27397
  )
26004
27398
 
26005
27399
  CheckVariousStatuses = Symbol(
26006
- [0x247B4],
26007
- [0x2302094],
27400
+ [0x247B4, 0x24804],
27401
+ [0x2302094, 0x23020E4],
26008
27402
  None,
26009
27403
  "CheckVariousStatuses",
26010
27404
  "Returns 0 if none of these conditions holds for the given entity: asleep, frozen, petrified, biding.\n\nr0: Entity pointer\nreturn: bool",
@@ -26074,6 +27468,24 @@ class JpOverlay29Functions:
26074
27468
  None,
26075
27469
  )
26076
27470
 
27471
+ IsAtJunction = Symbol(
27472
+ [0x250D4],
27473
+ [0x23029B4],
27474
+ None,
27475
+ "IsAtJunction",
27476
+ "Checks if the tile the given monster is on is considered a junction for the purposes of AI movement. This is affected by what types of terrain the monster can cross.\n\nr0: Entity pointer\nreturn: True if tile the monster is on is a junction.",
27477
+ None,
27478
+ )
27479
+
27480
+ ShouldAvoidFirstHit = Symbol(
27481
+ [0x25224],
27482
+ [0x2302B04],
27483
+ None,
27484
+ "ShouldAvoidFirstHit",
27485
+ "Checks whether an AI-controlled monster should try to avoid the first hit in battle.\n\nr0: Entity pointer\nr1: If false, this function always returns false.\nreturn: True if the monster should try to avoid the first hit in battle.",
27486
+ None,
27487
+ )
27488
+
26077
27489
  ShouldMonsterRunAway = Symbol(
26078
27490
  [0x25248],
26079
27491
  [0x2302B28],
@@ -26110,6 +27522,15 @@ class JpOverlay29Functions:
26110
27522
  None,
26111
27523
  )
26112
27524
 
27525
+ GetTreatmentBetweenMonstersIgnoreStatus = Symbol(
27526
+ [0x2553C],
27527
+ [0x2302E1C],
27528
+ None,
27529
+ "GetTreatmentBetweenMonstersIgnoreStatus",
27530
+ "Called to check if a monster should treat another as an ally, enemy, or ignore it. Similar to GetTreatmentBetweenMonsters, except temporary statuses (decoy, invisible, petrified) are ignored.\n\nr0: Pointer to entity 1\nr1: Pointer to entity 2\nreturn: Treatment that monster 1 should apply to monster 2",
27531
+ None,
27532
+ )
27533
+
26113
27534
  SafeguardIsActive = Symbol(
26114
27535
  [0x255CC],
26115
27536
  [0x2302EAC],
@@ -26254,6 +27675,15 @@ class JpOverlay29Functions:
26254
27675
  None,
26255
27676
  )
26256
27677
 
27678
+ CanSeeTeammate = Symbol(
27679
+ [0x25E70],
27680
+ [0x2303750],
27681
+ None,
27682
+ "CanSeeTeammate",
27683
+ "Checks if an allied monster can see any other teammate (via CanSeeTarget). Always returns false for enemy monsters.\n\nr0: monster pointer\nreturn: True if the monster is an allied monster that can see another teammate.",
27684
+ None,
27685
+ )
27686
+
26257
27687
  GetMoveTypeForMonster = Symbol(
26258
27688
  [0x25EEC],
26259
27689
  [0x23037CC],
@@ -26344,6 +27774,15 @@ class JpOverlay29Functions:
26344
27774
  None,
26345
27775
  )
26346
27776
 
27777
+ DungeonTmLearnMove = Symbol(
27778
+ [0x27544],
27779
+ [0x2304E24],
27780
+ None,
27781
+ "DungeonTmLearnMove",
27782
+ "Makes a team member learn a given move, or prompts them to forget one first if their move list is full. Used when activating a TM in dungeon mode.\n\nr0: user entity pointer\nr1: move id\nreturn: whether the move was successfully learned",
27783
+ None,
27784
+ )
27785
+
26347
27786
  GetMonsterMoves = Symbol(
26348
27787
  [0x27788],
26349
27788
  [0x2305068],
@@ -26578,6 +28017,15 @@ class JpOverlay29Functions:
26578
28017
  None,
26579
28018
  )
26580
28019
 
28020
+ TryEndPetrifiedOrSleepStatus = Symbol(
28021
+ [0x2B82C],
28022
+ [0x230910C],
28023
+ None,
28024
+ "TryEndPetrifiedOrSleepStatus",
28025
+ "Ends the target's petrified status unconditionally, and the target's sleep status if the status turns have run out.\n\nr0: user entity who attacked the target\nr1: target entity to try ending a status for.\nreturn: Whether or not the target's status ended.",
28026
+ None,
28027
+ )
28028
+
26581
28029
  EndFrozenStatus = Symbol(
26582
28030
  [0x2B8C8],
26583
28031
  [0x23091A8],
@@ -26623,6 +28071,15 @@ class JpOverlay29Functions:
26623
28071
  None,
26624
28072
  )
26625
28073
 
28074
+ GetLeaderIfVisible = Symbol(
28075
+ [0x2BF18],
28076
+ [0x23097F8],
28077
+ None,
28078
+ "GetLeaderIfVisible",
28079
+ "For allied monsters, gets the leader monster if they are visible to the ally. Always returns null for enemy monsters.\n\nr0: Pointer to monster\nreturn: Pointer to the leader monster if visible, null otherwise.",
28080
+ None,
28081
+ )
28082
+
26626
28083
  RunMonsterAi = Symbol(
26627
28084
  [0x2BF94],
26628
28085
  [0x2309874],
@@ -26713,6 +28170,15 @@ class JpOverlay29Functions:
26713
28170
  None,
26714
28171
  )
26715
28172
 
28173
+ WeightWeakTypePicker = Symbol(
28174
+ [0x2F454],
28175
+ [0x230CD34],
28176
+ None,
28177
+ "WeightWeakTypePicker",
28178
+ "Calculates a move weight used for deciding which target the move should be used on.\nThis function is used to calculate move weight when the attacker has the IQ skill Weak-Type Picker,\nwhich weights moves higher depending on type effectiveness.\n\nr0: attacker pointer\nr2: defender pointer\nr3: attack type\nreturn: Move weight for deciding move targeting.",
28179
+ None,
28180
+ )
28181
+
26716
28182
  CalcDamage = Symbol(
26717
28183
  [0x2F820],
26718
28184
  [0x230D100],
@@ -26920,6 +28386,15 @@ class JpOverlay29Functions:
26920
28386
  None,
26921
28387
  )
26922
28388
 
28389
+ FindDirectionOfAdjacentMonsterWithItem = Symbol(
28390
+ [0x3352C],
28391
+ [0x2310E0C],
28392
+ None,
28393
+ "FindDirectionOfAdjacentMonsterWithItem",
28394
+ "Given a monster, looks for an adjacent monster with the specified held item and returns the direction of that monster. Returns DIR_NONE if no monster is found. If there are multiple monsters with the specified held item, start in the direction the monster is facing and rotate in the order of DIRECTIONS_XY, picking the first direction with an eligible monster.\n\nr0: entity to look for an adjacent monster around it\nr1: held item to search for on adjacent monsters\nreturn: direction of an adjacent monster with the specified held item, or DIR_NONE if there are none.",
28395
+ None,
28396
+ )
28397
+
26923
28398
  TrySpawnEnemyItemDrop = Symbol(
26924
28399
  [0x33634],
26925
28400
  [0x2310F14],
@@ -27015,7 +28490,7 @@ class JpOverlay29Functions:
27015
28490
  [0x2313570],
27016
28491
  None,
27017
28492
  "TryInflictPausedStatus",
27018
- "Inflicts the Paused status condition on a target monster if possible.\n\nr0: user entity pointer\nr1: target entity pointer\nr2: ?\nr3: number of turns\nstack[0]: flag to log a message on failure\nstack[1]: flag to only perform the check for inflicting without actually inflicting\nreturn: Whether or not the status could be inflicted",
28493
+ "Inflicts the Paused status condition on a target monster if possible.\n\nr0: user entity pointer\nr1: target entity pointer\nr2: bool for whether status should not be inflicted if Safeguard is active\nr3: number of turns\nstack[0]: flag to log a message on failure\nstack[1]: flag to only perform the check for inflicting without actually inflicting\nreturn: Whether or not the status could be inflicted",
27019
28494
  None,
27020
28495
  )
27021
28496
 
@@ -27267,7 +28742,7 @@ class JpOverlay29Functions:
27267
28742
  [0x2315F90],
27268
28743
  None,
27269
28744
  "TrySealMove",
27270
- "Seals one of the target monster's moves. The move to be sealed is randomly selected.\n\nr0: user entity pointer\nr1: target entity pointer\nr2: flag to log a message on failure\nreturn: Whether or not a move was sealed",
28745
+ "Seals one of the target monster's moves. The move to be sealed is randomly selected.\n\nr0: user entity pointer\nr1: target entity pointer\nr2: flag to only perform the check for inflicting without actually inflicting\nreturn: Whether or not a move was sealed",
27271
28746
  None,
27272
28747
  )
27273
28748
 
@@ -27411,7 +28886,7 @@ class JpOverlay29Functions:
27411
28886
  [0x2317048],
27412
28887
  None,
27413
28888
  "TryInflictSureShotStatus",
27414
- "Inflicts the Sure Shot status condition on a target monster if possible.\n\nr0: user entity pointer\nr1: target entity pointer",
28889
+ "Inflicts the Sure Shot status condition on a target monster if possible.\n\nr0: user entity pointer\nr1: target entity pointer\nr2: number of turns the status will last for",
27415
28890
  None,
27416
28891
  )
27417
28892
 
@@ -27420,7 +28895,7 @@ class JpOverlay29Functions:
27420
28895
  [0x23170D8],
27421
28896
  None,
27422
28897
  "TryInflictWhifferStatus",
27423
- "Inflicts the Whiffer status condition on a target monster if possible.\n\nr0: user entity pointer\nr1: target entity pointer",
28898
+ "Inflicts the Whiffer status condition on a target monster if possible.\n\nr0: user entity pointer\nr1: target entity pointer\nr2: number of turns the status will last for\nr3: flag to only perform the check for inflicting without actually inflicting",
27424
28899
  None,
27425
28900
  )
27426
28901
 
@@ -27447,7 +28922,7 @@ class JpOverlay29Functions:
27447
28922
  [0x23172FC],
27448
28923
  None,
27449
28924
  "TryInflictDecoyStatus",
27450
- "Inflicts the Decoy status condition on a target monster if possible.\n\nr0: user entity pointer\nr1: target entity pointer\nreturn: Whether or not the status could be inflicted",
28925
+ "Inflicts the Decoy status condition on a target monster if possible.\n\nr0: user entity pointer\nr1: target entity pointer\nr2: value to set the target monster's unk_decoy_tracker field to\nr3: flag to log a message\nstack[0]: flag to only perform the check for inflicting without actually inflicting\nreturn: Whether or not the status could be inflicted",
27451
28926
  None,
27452
28927
  )
27453
28928
 
@@ -27474,7 +28949,7 @@ class JpOverlay29Functions:
27474
28949
  [0x2317880],
27475
28950
  None,
27476
28951
  "TryInflictTauntStatus",
27477
- "Inflicts the Taunt status condition on a target monster if possible.\n\nr0: user entity pointer\nr1: target entity pointer\nreturn: Whether or not the status could be inflicted",
28952
+ "Inflicts the Taunt status condition on a target monster if possible.\n\nr0: user entity pointer\nr1: target entity pointer\nr2: flag to only perform the check for inflicting without actually inflicting\nreturn: Whether or not the status could be inflicted",
27478
28953
  None,
27479
28954
  )
27480
28955
 
@@ -27582,7 +29057,7 @@ class JpOverlay29Functions:
27582
29057
  [0x2318B9C],
27583
29058
  None,
27584
29059
  "TryInflictBlinkerStatus",
27585
- "Inflicts the Blinker status condition on a target monster if possible.\n\nr0: user entity pointer\nr1: target entity pointer\nr2: flag to only perform the check for inflicting without actually inflicting\nr3: flag to log a message on failure\nreturn: Whether or not the status could be inflicted",
29060
+ "Inflicts the Blinker status condition on a target monster if possible.\n\nr0: user entity pointer\nr1: target entity pointer\nr2: flag to only perform the check for inflicting without actually inflicting\nr3: flag to make the status permanent (always 0 in the base game)\nreturn: Whether or not the status could be inflicted",
27586
29061
  None,
27587
29062
  )
27588
29063
 
@@ -27820,6 +29295,15 @@ class JpOverlay29Functions:
27820
29295
  None,
27821
29296
  )
27822
29297
 
29298
+ SetReflectStatus = Symbol(
29299
+ [0x3C988],
29300
+ [0x231A268],
29301
+ None,
29302
+ "SetReflectStatus",
29303
+ "Sets a target monster's reflect status to the specified value. \n\nIf it already has the Counter, Mini Counter or Metal Burst status, its remaining turn counter will remain the same.\n\nr0: user entity pointer\nr1: target entity pointer\nr2: reflect status",
29304
+ None,
29305
+ )
29306
+
27823
29307
  TryInflictSafeguardStatus = Symbol(
27824
29308
  [0x3CA60],
27825
29309
  [0x231A340],
@@ -28302,7 +29786,7 @@ class JpOverlay29Functions:
28302
29786
  [0x231FD9C],
28303
29787
  None,
28304
29788
  "IsAdjacentToEnemy",
28305
- "Called to check if a hostile entity is present in any of the tiles adjacent to an entity.\n\nr0: Pointer to entity\nreturn: True if yes, false if no",
29789
+ "Called to check if a hostile entity is present in any of the tiles adjacent to an entity. This function uses GetTreatmentBetweenMonsters to determine whether an adjacent entity is hostile, which has special handling for the decoy, petrified, and invisible statuses.\n\nr0: Pointer to entity\nreturn: True if yes, false if no",
28306
29790
  None,
28307
29791
  )
28308
29792
 
@@ -28324,6 +29808,15 @@ class JpOverlay29Functions:
28324
29808
  None,
28325
29809
  )
28326
29810
 
29811
+ InitMoveWrapper = Symbol(
29812
+ [0x425D0],
29813
+ [0x231FEB0],
29814
+ None,
29815
+ "InitMoveWrapper",
29816
+ "Wrapper for InitMove which takes a superfluous parameter.\n\nr0: unused\nr1: [output] pointer to move to initialize\nr2: move ID",
29817
+ None,
29818
+ )
29819
+
28327
29820
  MoveIsNotPhysical = Symbol(
28328
29821
  [0x425E4],
28329
29822
  [0x231FEC4],
@@ -28342,6 +29835,24 @@ class JpOverlay29Functions:
28342
29835
  None,
28343
29836
  )
28344
29837
 
29838
+ MakeFloorOneRoom = Symbol(
29839
+ [0x4260C],
29840
+ [0x231FEEC],
29841
+ None,
29842
+ "MakeFloorOneRoom",
29843
+ "Removes all walls to make the floor one room.\n\nr0: user entity pointer",
29844
+ None,
29845
+ )
29846
+
29847
+ TryHurl = Symbol(
29848
+ [0x429C8],
29849
+ [0x23202A8],
29850
+ None,
29851
+ "TryHurl",
29852
+ "Attempts to hurl the target monster at another monster, or to an unoccupied tile if there is no valid one in range.\n\nr0: user entity pointer\nr1: target entity pointer",
29853
+ None,
29854
+ )
29855
+
28345
29856
  TryDrought = Symbol(
28346
29857
  [0x43160],
28347
29858
  [0x2320A40],
@@ -28351,6 +29862,15 @@ class JpOverlay29Functions:
28351
29862
  None,
28352
29863
  )
28353
29864
 
29865
+ TryTrawl = Symbol(
29866
+ [0x432B0],
29867
+ [0x2320B90],
29868
+ None,
29869
+ "TryTrawl",
29870
+ "Attempts to pull all items on the floor towards the user.\n\nFails if the floor is a fixed room on which Trawl Orbs are disabled.\n\nr0: user entity pointer",
29871
+ None,
29872
+ )
29873
+
28354
29874
  TryPounce = Symbol(
28355
29875
  [0x437EC],
28356
29876
  [0x23210CC],
@@ -28662,7 +30182,25 @@ class JpOverlay29Functions:
28662
30182
  [0x2334460],
28663
30183
  None,
28664
30184
  "StatusCheckerCheck",
28665
- "Determines if using a given move against its intended targets would be redundant because all of them already have the effect caused by said move.\n\nr0: Pointer to the entity that is considering using the move\nr1: Move pointer\nreturn: True if it makes sense to use the move, false if it would be redundant given the effects it causes and the effects that all the targets already have.",
30185
+ "Determines if using a given move against its intended targets would be redundant because all of them already have the effect caused by said move. Used for moves that affect the user or allies.\n\nr0: Pointer to the entity that is considering using the move\nr1: Move pointer\nreturn: True if it makes sense to use the move, false if it would be redundant given the effects it causes and the effects that all the targets already have.",
30186
+ None,
30187
+ )
30188
+
30189
+ StatusCheckerCheckOnTarget = Symbol(
30190
+ [0x57ADC],
30191
+ [0x23353BC],
30192
+ None,
30193
+ "StatusCheckerCheckOnTarget",
30194
+ "Determines if using a given move against its intended target would be redundant because all of them already have the effect caused by said move. Used for moves that affect enemies.\n\nr0: Pointer to the entity that is considering using the move\nr2: Pointer to the entity being targeted by the move\nr1: Move pointer\nreturn: True if it makes sense to use the move, false if it would be redundant given the effects it causes and the effects that the target already has.",
30195
+ None,
30196
+ )
30197
+
30198
+ HasLastUsedMove = Symbol(
30199
+ [0x587B8],
30200
+ [0x2336098],
30201
+ None,
30202
+ "HasLastUsedMove",
30203
+ "Determines whether a monster has used any of its moves on this floor.\nThis function takes in the monster's move list and checks if any moves have the f_last_used flag set.\n\nr0: Pointer to the monster's moves.\nreturn: True if the move list has any moves with the f_last_used flag set, false otherwise.",
28666
30204
  None,
28667
30205
  )
28668
30206
 
@@ -28918,6 +30456,15 @@ class JpOverlay29Functions:
28918
30456
  None,
28919
30457
  )
28920
30458
 
30459
+ IsTileGround = Symbol(
30460
+ [0x5B910],
30461
+ [0x23391F0],
30462
+ None,
30463
+ "IsTileGround",
30464
+ "Returns true if the given position is a ground tile, meaning that Dig can be used and Dive cannot be used.\nThis depends on the terrain type of the position and the dungeon tileset.\n\nr0: Position\nreturn: True if the current tile is a ground tile.",
30465
+ None,
30466
+ )
30467
+
28921
30468
  IsWaterTileset = Symbol(
28922
30469
  [0x5B978],
28923
30470
  [0x2339258],
@@ -28945,6 +30492,24 @@ class JpOverlay29Functions:
28945
30492
  None,
28946
30493
  )
28947
30494
 
30495
+ FindAdjacentEnemy = Symbol(
30496
+ [0x5BD8C],
30497
+ [0x233966C],
30498
+ None,
30499
+ "FindAdjacentEnemy",
30500
+ "Finds a hostile entity adjacent to the given entity. Hostility is based on whether the monster->is_not_team_member flag does not match. If there are multiple adjacent hostile enemies, the first one is returned based on the order of directions in DIRECTION_XY.\n\nr0: Pointer to entity\nreturn: A hostile entity adjacent to the given entity, or null if there aren't any.",
30501
+ None,
30502
+ )
30503
+
30504
+ IsAdjacentToEnemyIgnoreTreatment = Symbol(
30505
+ [0x5BE34],
30506
+ [0x2339714],
30507
+ None,
30508
+ "IsAdjacentToEnemyIgnoreTreatment",
30509
+ "Called to check if a hostile entity is present in any of the tiles adjacent to an entity. Unlike IsAdjacentToEnemy, this function uses monster->is_not_team_member to determine if an adjacent enemy is hostile rather than GetTreatmentBetweenMonsters, which means it doesn't take decoy, petrified, and invisible statuses into account.\n\nr0: Pointer to entity\nreturn: True if yes, false if no",
30510
+ None,
30511
+ )
30512
+
28948
30513
  ResetGravity = Symbol(
28949
30514
  [0x5BE50],
28950
30515
  [0x2339730],
@@ -28972,6 +30537,15 @@ class JpOverlay29Functions:
28972
30537
  None,
28973
30538
  )
28974
30539
 
30540
+ RevealAttackedTile = Symbol(
30541
+ [0x5BF14],
30542
+ [0x23397F4],
30543
+ None,
30544
+ "RevealAttackedTile",
30545
+ "Reveals the tile given by the position.\n\nIs also activated on a tile if a fainted monster drops an item on it.\n\nr0: position struct pointer",
30546
+ None,
30547
+ )
30548
+
28975
30549
  ShouldBoostKecleonShopSpawnChance = Symbol(
28976
30550
  [0x5BFA4],
28977
30551
  [0x2339884],
@@ -29895,7 +31469,7 @@ class JpOverlay29Functions:
29895
31469
  [0x234550C],
29896
31470
  None,
29897
31471
  "AreLateGameTrapsEnabled",
29898
- "Check if late-game traps (Summon, Pitfall, and Pokémon traps) work in the given fixed room.\n\nOr disabled? This function, which Irdkwia's notes label as a disable check, check the struct field labeled in End's notes as an enable flag.\n\nr0: fixed room ID\nreturn: bool",
31472
+ "Check if late-game traps (Summon, Pitfall, and Pokémon traps) work in the given fixed room.\n\nr0: fixed room ID\nreturn: True if late-game traps are enabled, false if they are disabled.",
29899
31473
  None,
29900
31474
  )
29901
31475
 
@@ -29962,6 +31536,24 @@ class JpOverlay29Functions:
29962
31536
  None,
29963
31537
  )
29964
31538
 
31539
+ PrepareItemForPrinting = Symbol(
31540
+ [0x68628, 0x68654],
31541
+ [0x2345F08, 0x2345F34],
31542
+ None,
31543
+ "PrepareItemForPrinting",
31544
+ "Calls functions to prepare an item to be printed in place of the [item:r0] tag in a message log message.\n\nr0: tag id\nr1: item struct pointer",
31545
+ None,
31546
+ )
31547
+
31548
+ PrepareItemForPrinting2 = Symbol(
31549
+ [0x6868C],
31550
+ [0x2345F6C],
31551
+ None,
31552
+ "PrepareItemForPrinting2",
31553
+ "Used in SubstitutePlaceholderStringTags. Has the same functionality as PrepareItemForPrinting, except the message log preprocessor_args struct is passed as a parameter.\n\nr0: preprocessor_args pointer (in practice, always the global struct used for the message log)\nr1: tag id\nr2: item pointer",
31554
+ None,
31555
+ )
31556
+
29965
31557
  GenerateStandardItem = Symbol(
29966
31558
  [0x686B4],
29967
31559
  [0x2345F94],
@@ -30088,6 +31680,15 @@ class JpOverlay29Functions:
30088
31680
  None,
30089
31681
  )
30090
31682
 
31683
+ HandleCurvedProjectileThrow = Symbol(
31684
+ [0x6B674],
31685
+ [0x2348F54],
31686
+ None,
31687
+ "HandleCurvedProjectileThrow",
31688
+ "Throws an item in a curved arc, like a Gravelerock.\n\nr0: monster entity throwing the item\nr1: item being thrown\nr2: position to start throwing the item from\nr3: position to throw the item to\nstack[0]: Metadata about the item being thrown",
31689
+ None,
31690
+ )
31691
+
30091
31692
  DoesProjectileHitTarget = Symbol(
30092
31693
  [0x6BAC8],
30093
31694
  [0x23493A8],
@@ -30124,6 +31725,15 @@ class JpOverlay29Functions:
30124
31725
  None,
30125
31726
  )
30126
31727
 
31728
+ IsItemUnkMissionItem2 = Symbol(
31729
+ [0x6C748],
31730
+ [0x234A028],
31731
+ None,
31732
+ "IsItemUnkMissionItem2",
31733
+ "Checks if an item is a special target item with flag item::f_unk_mission_item2 set.\n\nr0: item pointer\nreturn: True if the item is a special target item with flag item::f_unk_mission_item2 set.",
31734
+ None,
31735
+ )
31736
+
30127
31737
  CheckActiveChallengeRequest = Symbol(
30128
31738
  [0x6CB94],
30129
31739
  [0x234A474],
@@ -30376,12 +31986,129 @@ class JpOverlay29Functions:
30376
31986
  None,
30377
31987
  )
30378
31988
 
30379
- LogMessageByIdWithPopupCheckParticipants = Symbol(
31989
+ InitAlertBoxInfo = Symbol(
31990
+ [0x6E934],
31991
+ [0x234C214],
31992
+ None,
31993
+ "InitAlertBoxInfo",
31994
+ "Initializes the heap-allocated alert_box_info struct in MESSAGE_LOG_INFO.\n\nNo params.",
31995
+ None,
31996
+ )
31997
+
31998
+ FreeAlertBoxInfo = Symbol(
31999
+ [0x6E960],
32000
+ [0x234C240],
32001
+ None,
32002
+ "FreeAlertBoxInfo",
32003
+ "Frees the heap-allocated alert_box_info struct in MESSAGE_LOG_INFO.\n\nNo params.",
32004
+ None,
32005
+ )
32006
+
32007
+ SetMessageLogGroupStartFlag = Symbol(
32008
+ [0x6E9B4],
32009
+ [0x234C294],
32010
+ None,
32011
+ "SetMessageLogGroupStartFlag",
32012
+ "Sets whether the next message in the message log should be the start of a new group separated by a horizontal line.\n\nr0: bool",
32013
+ None,
32014
+ )
32015
+
32016
+ GetMessageLogPreprocessorArgs = Symbol(
32017
+ [0x6E9C4],
32018
+ [0x234C2A4],
32019
+ None,
32020
+ "GetMessageLogPreprocessorArgs",
32021
+ "Gets a pointer to the global preprocessor_args struct used for the message log.\n\nreturn: preprocessor_args pointer",
32022
+ None,
32023
+ )
32024
+
32025
+ InitMessageLogPreprocessorArgs = Symbol(
32026
+ [0x6E9DC],
32027
+ [0x234C2BC],
32028
+ None,
32029
+ "InitMessageLogPreprocessorArgs",
32030
+ "Initializes the global preprocessor_args struct used for the message log.\n\nNo params.",
32031
+ None,
32032
+ )
32033
+
32034
+ SetMessageLogPreprocessorArgsFlagVal = Symbol(
32035
+ [0x6E9FC],
32036
+ [0x234C2DC],
32037
+ None,
32038
+ "SetMessageLogPreprocessorArgsFlagVal",
32039
+ "Sets a flag_vals element in the global preprocessor_args struct used for the message log to a specified value.\n\nr0: position in flag_vals array\nr1: value",
32040
+ None,
32041
+ )
32042
+
32043
+ SetMessageLogPreprocessorArgsIdVal = Symbol(
32044
+ [0x6EA14],
32045
+ [0x234C2F4],
32046
+ None,
32047
+ "SetMessageLogPreprocessorArgsIdVal",
32048
+ "Sets an id_vals element in the global preprocessor_args struct used for the message log to a specified value.\n\nr0: position in id_vals array\nr1: value",
32049
+ None,
32050
+ )
32051
+
32052
+ SetMessageLogPreprocessorArgsNumberVal = Symbol(
32053
+ [0x6EA2C],
32054
+ [0x234C30C],
32055
+ None,
32056
+ "SetMessageLogPreprocessorArgsNumberVal",
32057
+ "Sets a number_vals element in the global preprocessor_args struct used for the message log to a specified value.\n\nr0: position in number_vals array\nr1: value",
32058
+ None,
32059
+ )
32060
+
32061
+ SetMessageLogPreprocessorArgsString = Symbol(
32062
+ [0x6EA44],
32063
+ [0x234C324],
32064
+ None,
32065
+ "SetMessageLogPreprocessorArgsString",
32066
+ "Sets a strings element in the global preprocessor_args struct used for the message log to a specified string.\n\nr0: position in strings array\nr1: string pointer",
32067
+ None,
32068
+ )
32069
+
32070
+ SetMessageLogPreprocessorArgsStringToName = Symbol(
32071
+ [0x6EA5C],
32072
+ [0x234C33C],
32073
+ None,
32074
+ "SetMessageLogPreprocessorArgsStringToName",
32075
+ "Sets a strings element in the global preprocessor_args struct used for the message log to the name of a monster.\n\nr0: position in strings array\nr1: monster_id",
32076
+ None,
32077
+ )
32078
+
32079
+ SetMessageLogPreprocessorArgsSpeakerId = Symbol(
32080
+ [0x6EA94],
32081
+ [0x234C374],
32082
+ None,
32083
+ "SetMessageLogPreprocessorArgsSpeakerId",
32084
+ "Sets the speaker_id in the global preprocessor_args struct used for the message log to the id of a monster.\n\nr0: monster_id",
32085
+ None,
32086
+ )
32087
+
32088
+ SetMessageLogPreprocessorArgsSpeakerId0x30000 = Symbol(
32089
+ [0x6EAA8],
32090
+ [0x234C388],
32091
+ None,
32092
+ "SetMessageLogPreprocessorArgsSpeakerId0x30000",
32093
+ "Sets the speaker_id in the global preprocessor_args struct used for the message log to a monster's team index, ORed with 0x30000.\n\nr0: team_index",
32094
+ None,
32095
+ )
32096
+
32097
+ LogMessageByIdWithPopupAndAbility = Symbol(
30380
32098
  [0x6EBE0],
30381
32099
  [0x234C4C0],
30382
32100
  None,
30383
- "LogMessageByIdWithPopupCheckParticipants",
30384
- "Logs the appropriate message based on the participating entites; this function calls LogMessageByIdWithPopupCheckUserTarget is both the user and target pointers are non-null, otherwise it calls LogMessageByIdWithPopupCheckUser if the user pointer is non-null, otherwise doesn't log anything.\n\nThis function also seems to set some global table entry to some value?\n\nr0: user entity pointer\nr1: target entity pointer\nr2: message ID\nr3: index into some table?\nstack[0]: value to set at the table index specified by r3?",
32101
+ "LogMessageByIdWithPopupAndAbility",
32102
+ "Logs the appropriate message based on the participating entites; this function calls LogMessageByIdWithPopupCheckUserTarget is both the user and target pointers are non-null, otherwise it calls LogMessageByIdWithPopupCheckUser if the user pointer is non-null, otherwise doesn't log anything.\n\nThis function also replaces the [c_i:r3] tag by setting an id_vals element in the global preprocessor_args struct used for the message log to an ability.\n\nr0: user entity pointer\nr1: target entity pointer\nr2: message ID\nr3: position in id_vals array\nstack[0]: value (in practice, always the ability, although could be used for any other text tag that uses id_vals)",
32103
+ None,
32104
+ )
32105
+
32106
+ WaitUntilAlertBoxTextIsLoadedWrapper = Symbol(
32107
+ [0x6EC24],
32108
+ [0x234C504],
32109
+ None,
32110
+ "WaitUntilAlertBoxTextIsLoadedWrapper",
32111
+ "Calls WaitUntilAlertBoxTextIsLoaded with r0 = 0x50.\n\nNo params.",
30385
32112
  None,
30386
32113
  )
30387
32114
 
@@ -30493,6 +32220,24 @@ class JpOverlay29Functions:
30493
32220
  None,
30494
32221
  )
30495
32222
 
32223
+ AlertBoxIsScrolling = Symbol(
32224
+ [0x6F17C],
32225
+ [0x234CA5C],
32226
+ None,
32227
+ "AlertBoxIsScrolling",
32228
+ "Returns true if the alert box is currently scrolling (i.e. a message is being loaded).\n\nreturn: bool",
32229
+ None,
32230
+ )
32231
+
32232
+ WaitUntilAlertBoxTextIsLoaded = Symbol(
32233
+ [0x6F39C],
32234
+ [0x234CC7C],
32235
+ None,
32236
+ "WaitUntilAlertBoxTextIsLoaded",
32237
+ "Calls AdvanceFrame in a loop until the dungeon alert box has finished scrolling.\n\nr0: value to pass to AdvanceFrame (unused by the function)",
32238
+ None,
32239
+ )
32240
+
30496
32241
  InitPortraitDungeon = Symbol(
30497
32242
  [0x6F444],
30498
32243
  [0x234CD24],
@@ -30646,6 +32391,15 @@ class JpOverlay29Functions:
30646
32391
  None,
30647
32392
  )
30648
32393
 
32394
+ StairsMenuAfterStep = Symbol(
32395
+ [0x722A0],
32396
+ [0x234FB80],
32397
+ None,
32398
+ "StairsMenuAfterStep",
32399
+ "Opens the stairs menu after stepping on a stairs tile.\n\nr0: Entity pointer (in practice, always the leader)\nr1: whether to not open minimap upon menu close",
32400
+ None,
32401
+ )
32402
+
30649
32403
  DungeonModeSetupAndShowNameKeyboard = Symbol(
30650
32404
  [0x729AC],
30651
32405
  [0x235028C],
@@ -30673,10 +32427,24 @@ class JpOverlay29Functions:
30673
32427
  None,
30674
32428
  )
30675
32429
 
32430
+ CreateMonsterSummaryFromMonster = _Deprecated(
32431
+ "CreateMonsterSummaryFromMonster", CreateMonsterSummaryFromEntity
32432
+ )
32433
+
30676
32434
  ShouldMonsterRunAwayVariation = _Deprecated(
30677
32435
  "ShouldMonsterRunAwayVariation", ShouldMonsterRunAwayAndShowEffect
30678
32436
  )
30679
32437
 
32438
+ GetFlashFireStatus = _Deprecated("GetFlashFireStatus", FlashFireShouldActivate)
32439
+
32440
+ SetPreprocessorArgsIdVal = _Deprecated(
32441
+ "SetPreprocessorArgsIdVal", SetMessageLogPreprocessorArgsIdVal
32442
+ )
32443
+
32444
+ LogMessageByIdWithPopupCheckParticipants = _Deprecated(
32445
+ "LogMessageByIdWithPopupCheckParticipants", LogMessageByIdWithPopupAndAbility
32446
+ )
32447
+
30680
32448
 
30681
32449
  class JpOverlay29Data:
30682
32450
 
@@ -31205,12 +32973,21 @@ class JpOverlay29Data:
31205
32973
  DIRECTIONS_XY = Symbol(
31206
32974
  [0x750BC],
31207
32975
  [0x235299C],
31208
- None,
32976
+ 0x20,
31209
32977
  "DIRECTIONS_XY",
31210
32978
  "An array mapping each direction index to its x and y displacements.\n\nDirections start with 0=down and proceed counterclockwise (see enum direction_id). Displacements for x and y are interleaved and encoded as 2-byte signed integers. For example, the first two integers are [0, 1], which correspond to the x and y displacements for the 'down' direction (positive y means down).",
31211
32979
  "int16_t[8][2]",
31212
32980
  )
31213
32981
 
32982
+ FACING_DIRECTION_INCREMENTS = Symbol(
32983
+ [0x7511C],
32984
+ [0x23529FC],
32985
+ 0x20,
32986
+ "FACING_DIRECTION_INCREMENTS",
32987
+ "An array of direction offsets from a monster's current facing direction, each increasingly farther away from the current direction.\n\nFor example, the array starts with [0, 1, -1, 2...]. If the monster's current direction is DIR_UP, the first four array elements\nare each added to the current direction, corresponding to DIR_UP, DIR_UP_LEFT, DIR_UP_RIGHT, DIR_LEFT.",
32988
+ "int[8]",
32989
+ )
32990
+
31214
32991
  DISPLACEMENTS_WITHIN_2_LARGEST_FIRST = Symbol(
31215
32992
  [0x7517C],
31216
32993
  [0x2352A5C],
@@ -31364,6 +33141,15 @@ class JpOverlay29Data:
31364
33141
  "struct fx64_16",
31365
33142
  )
31366
33143
 
33144
+ WEAK_TYPE_PICKER_MATCHUP_MULTIPLIERS = Symbol(
33145
+ [0x76224],
33146
+ [0x2353B04],
33147
+ 0x10,
33148
+ "WEAK_TYPE_PICKER_MATCHUP_MULTIPLIERS",
33149
+ "Array of multipliers to a move's AI weight when Weak-Type Picker is in effect, based on the move's type matchup against its target. Array indexes correspond to enum type_matchup.",
33150
+ "int[4]",
33151
+ )
33152
+
31367
33153
  TYPE_DAMAGE_NEGATING_EXCLUSIVE_ITEM_EFFECTS = Symbol(
31368
33154
  [0x76244],
31369
33155
  [0x2353B24],
@@ -31583,7 +33369,7 @@ class JpOverlay29Data:
31583
33369
  DEFAULT_TILE = Symbol(
31584
33370
  [0x770BC],
31585
33371
  [0x235499C],
31586
- None,
33372
+ 0x14,
31587
33373
  "DEFAULT_TILE",
31588
33374
  "The default tile struct.\n\nThis is just a struct full of zeroes, but is used as a fallback in various places where a 'default' tile is needed, such as when a grid index is out of range.\n\ntype: struct tile",
31589
33375
  "struct tile",
@@ -31607,6 +33393,15 @@ class JpOverlay29Data:
31607
33393
  "void*",
31608
33394
  )
31609
33395
 
33396
+ MESSAGE_LOG_INFO = Symbol(
33397
+ [0x77164],
33398
+ [0x2354A44],
33399
+ None,
33400
+ "MESSAGE_LOG_INFO",
33401
+ "[Runtime] Struct containing information and state for logged messages.",
33402
+ "struct message_log_info",
33403
+ )
33404
+
31610
33405
  DUNGEON_FADES_PTR = Symbol(
31611
33406
  [0x77178],
31612
33407
  [0x2354A58],
@@ -31715,12 +33510,12 @@ class JpOverlay30Section:
31715
33510
 
31716
33511
  class JpOverlay31Functions:
31717
33512
 
31718
- EntryOverlay31 = Symbol(
33513
+ InitDungeonMenu = Symbol(
31719
33514
  [0x0],
31720
33515
  [0x2383AA0],
31721
33516
  None,
31722
- "EntryOverlay31",
31723
- "Note: unverified, ported from Irdkwia's notes\n\nNo params.",
33517
+ "InitDungeonMenu",
33518
+ "Initializes the main dungeon menu and allocates a struct on the heap with information for HandleDungeonMenu.\n\nNo params.",
31724
33519
  None,
31725
33520
  )
31726
33521
 
@@ -31742,12 +33537,39 @@ class JpOverlay31Functions:
31742
33537
  None,
31743
33538
  )
31744
33539
 
31745
- CreateStairsMenuState = Symbol(
33540
+ DungeonMenuLoop = Symbol(
33541
+ [0x334],
33542
+ [0x2383DD4],
33543
+ None,
33544
+ "DungeonMenuLoop",
33545
+ "Handles displaying the main dungeon menu and is called on each frame while it is open.\n\nUses a switch statement based on a state field of the struct allocated in InitDungeonMenu to determine what actions to take.\n\nreturn: 4 if should close main dungeon menu (including when switching menus), 1 otherwise",
33546
+ None,
33547
+ )
33548
+
33549
+ FreeDungeonMenu = Symbol(
33550
+ [0x58C],
33551
+ [0x238402C],
33552
+ None,
33553
+ "FreeDungeonMenu",
33554
+ "Closes the main dungeon menu and frees the heap-allocated struct initialized in InitDungeonMenu.\n\nNo params.",
33555
+ None,
33556
+ )
33557
+
33558
+ StairsMenu = Symbol(
33559
+ [0x5F8],
33560
+ [0x2384098],
33561
+ None,
33562
+ "StairsMenu",
33563
+ "Called when the stairs menu is open. Does not return until the menu is closed.\n\nr0: Entity pointer (in practice, always the leader)\nr1: whether to not open minimap upon menu close",
33564
+ None,
33565
+ )
33566
+
33567
+ InitStairsMenu = Symbol(
31746
33568
  [0x6B4],
31747
33569
  [0x2384154],
31748
33570
  None,
31749
- "CreateStairsMenuState",
31750
- "Called when the leader steps on any stairs tile (regular, warp zone, rescue point, hidden stairs).\n\nAllocates a stairs_menu struct on the heap with information for HandleStairsMenu, which will be pointed to by STAIRS_MENU_PTR.\n\nr0: Entity pointer (in practice, always the leader)",
33571
+ "InitStairsMenu",
33572
+ "Called when the leader steps on any stairs tile (regular, warp zone, rescue point, hidden stairs).\n\nInitializes the stairs menu and allocates a stairs_menu struct on the heap with information for HandleStairsMenu, which will be pointed to by STAIRS_MENU_PTR.\n\nr0: Entity pointer (in practice, always the leader)",
31751
33573
  None,
31752
33574
  )
31753
33575
 
@@ -31760,12 +33582,48 @@ class JpOverlay31Functions:
31760
33582
  None,
31761
33583
  )
31762
33584
 
31763
- HandleStairsMenu = Symbol(
33585
+ StairsMenuLoop = Symbol(
31764
33586
  [0x79C],
31765
33587
  [0x238423C],
31766
33588
  None,
31767
- "HandleStairsMenu",
31768
- "Handles displaying the stairs menu and is called on each frame while it is open, also updating the leader's action fields.\n\nUses a switch statement based on the state field in stairs_menu to determine what actions to take.\n\nreturn: int",
33589
+ "StairsMenuLoop",
33590
+ "Handles displaying the stairs menu and is called on each frame while it is open, also updating the leader's action fields.\n\nUses a switch statement based on the state field in stairs_menu to determine what actions to take.\n\nreturn: 4 if should close stairs menu entirely, 1 otherwise (including when switching between main/info menus)",
33591
+ None,
33592
+ )
33593
+
33594
+ CloseMainStairsMenu = Symbol(
33595
+ [0xA6C],
33596
+ [0x238450C],
33597
+ None,
33598
+ "CloseMainStairsMenu",
33599
+ "Closes the main stairs menu. Used both when closing it entirely as well as when switching to the info menu.\n\nNo params.",
33600
+ None,
33601
+ )
33602
+
33603
+ FreeStairsMenu = Symbol(
33604
+ [0xAD0],
33605
+ [0x2384570],
33606
+ None,
33607
+ "FreeStairsMenu",
33608
+ "Closes the main stairs menu and frees the heap-allocated stairs_menu struct pointed to by STAIRS_MENU_PTR.\n\nNo params.",
33609
+ None,
33610
+ )
33611
+
33612
+ EntityIsValidOverlay31 = Symbol(
33613
+ [0xE38],
33614
+ [0x23848D8],
33615
+ None,
33616
+ "EntityIsValidOverlay31",
33617
+ "See overlay29.yml::EntityIsValid",
33618
+ None,
33619
+ )
33620
+
33621
+ ItemsMenu = Symbol(
33622
+ [0x10C4],
33623
+ [0x2384B64],
33624
+ None,
33625
+ "ItemsMenu",
33626
+ "Called when the in-dungeon 'items' menu is open. Does not return until the menu is closed.\n\nr0: Pointer to the leader's entity struct\nr1: ?\nreturn: ?",
31769
33627
  None,
31770
33628
  )
31771
33629
 
@@ -31832,6 +33690,15 @@ class JpOverlay31Functions:
31832
33690
  None,
31833
33691
  )
31834
33692
 
33693
+ DrawDungeonHintContents = Symbol(
33694
+ [0x69CC],
33695
+ [0x238A46C],
33696
+ None,
33697
+ "DrawDungeonHintContents",
33698
+ "Draws the contents of the current dungeon hint that is to be displayed in the Dungeon Hints menu.\n\nr0: window id",
33699
+ None,
33700
+ )
33701
+
31835
33702
  HelpMenuLoop = Symbol(
31836
33703
  [0x6A20],
31837
33704
  [0x238A4C0],
@@ -31841,6 +33708,12 @@ class JpOverlay31Functions:
31841
33708
  None,
31842
33709
  )
31843
33710
 
33711
+ EntryOverlay31 = _Deprecated("EntryOverlay31", InitDungeonMenu)
33712
+
33713
+ CreateStairsMenuState = _Deprecated("CreateStairsMenuState", InitStairsMenu)
33714
+
33715
+ HandleStairsMenu = _Deprecated("HandleStairsMenu", StairsMenuLoop)
33716
+
31844
33717
 
31845
33718
  class JpOverlay31Data:
31846
33719
 
@@ -31938,39 +33811,39 @@ class JpOverlay31Data:
31938
33811
  "struct window_params",
31939
33812
  )
31940
33813
 
31941
- DUNGEON_SUBMENU_ITEMS_1 = Symbol(
33814
+ STAIRS_MENU_ITEMS_NORMAL = Symbol(
31942
33815
  [0x7698],
31943
33816
  [0x238B138],
31944
33817
  0x20,
31945
- "DUNGEON_SUBMENU_ITEMS_1",
31946
- "",
33818
+ "STAIRS_MENU_ITEMS_NORMAL",
33819
+ "List of 4 simple_menu_id_items for the normal stairs menu.",
31947
33820
  "struct simple_menu_id_item[4]",
31948
33821
  )
31949
33822
 
31950
- DUNGEON_SUBMENU_ITEMS_2 = Symbol(
33823
+ STAIRS_MENU_ITEMS_WARP_ZONE = Symbol(
31951
33824
  [0x76B8],
31952
33825
  [0x238B158],
31953
33826
  0x20,
31954
- "DUNGEON_SUBMENU_ITEMS_2",
31955
- "",
33827
+ "STAIRS_MENU_ITEMS_WARP_ZONE",
33828
+ "List of 4 simple_menu_id_items for the Warp Zone stairs menu.",
31956
33829
  "struct simple_menu_id_item[4]",
31957
33830
  )
31958
33831
 
31959
- DUNGEON_SUBMENU_ITEMS_3 = Symbol(
33832
+ STAIRS_MENU_ITEMS_RESCUE_POINT = Symbol(
31960
33833
  [0x76D8],
31961
33834
  [0x238B178],
31962
33835
  0x20,
31963
- "DUNGEON_SUBMENU_ITEMS_3",
31964
- "",
33836
+ "STAIRS_MENU_ITEMS_RESCUE_POINT",
33837
+ "List of 4 simple_menu_id_items for the Rescue Point stairs menu.",
31965
33838
  "struct simple_menu_id_item[4]",
31966
33839
  )
31967
33840
 
31968
- DUNGEON_SUBMENU_ITEMS_4 = Symbol(
33841
+ STAIRS_MENU_ITEMS_HIDDEN_STAIRS = Symbol(
31969
33842
  [0x76F8],
31970
33843
  [0x238B198],
31971
33844
  0x20,
31972
- "DUNGEON_SUBMENU_ITEMS_4",
31973
- "",
33845
+ "STAIRS_MENU_ITEMS_HIDDEN_STAIRS",
33846
+ "List of 4 simple_menu_id_items for the hidden stairs menu.",
31974
33847
  "struct simple_menu_id_item[4]",
31975
33848
  )
31976
33849
 
@@ -32379,6 +34252,22 @@ class JpOverlay31Data:
32379
34252
  "",
32380
34253
  )
32381
34254
 
34255
+ DUNGEON_SUBMENU_ITEMS_1 = _Deprecated(
34256
+ "DUNGEON_SUBMENU_ITEMS_1", STAIRS_MENU_ITEMS_NORMAL
34257
+ )
34258
+
34259
+ DUNGEON_SUBMENU_ITEMS_2 = _Deprecated(
34260
+ "DUNGEON_SUBMENU_ITEMS_2", STAIRS_MENU_ITEMS_WARP_ZONE
34261
+ )
34262
+
34263
+ DUNGEON_SUBMENU_ITEMS_3 = _Deprecated(
34264
+ "DUNGEON_SUBMENU_ITEMS_3", STAIRS_MENU_ITEMS_RESCUE_POINT
34265
+ )
34266
+
34267
+ DUNGEON_SUBMENU_ITEMS_4 = _Deprecated(
34268
+ "DUNGEON_SUBMENU_ITEMS_4", STAIRS_MENU_ITEMS_HIDDEN_STAIRS
34269
+ )
34270
+
32382
34271
 
32383
34272
  class JpOverlay31Section:
32384
34273
  name = "overlay31"
@@ -33495,6 +35384,15 @@ class JpRamData:
33495
35384
  "int",
33496
35385
  )
33497
35386
 
35387
+ DEFAULT_TILE_COPY = Symbol(
35388
+ [0x37DD38],
35389
+ [0x237DD38],
35390
+ 0x14,
35391
+ "DEFAULT_TILE_COPY",
35392
+ "A copy of DEFAULT_TILE. Used to hold the default tile returned from GetTileSafe.",
35393
+ "struct tile",
35394
+ )
35395
+
33498
35396
  FLOOR_GENERATION_STATUS = Symbol(
33499
35397
  [0x37E23C],
33500
35398
  [0x237E23C],