pmdsky-debug-py 10.1.15__py3-none-any.whl → 10.2.20__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,78 @@ 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 value 1\nr1: script variable value 2\nr2: calculation to perform on the script variables\nreturn: calculation result",
6451
+ None,
6452
+ )
6453
+
6454
+ CompareScriptVariables = Symbol(
6455
+ [0x4C0F8],
6456
+ [0x204C0F8],
6457
+ None,
6458
+ "CompareScriptVariables",
6459
+ "Compares two loaded script variables and returns the comparison result.\n\nr0: script variable value 1\nr1: script variable value 2\nr2: comparison to perform on the script variables\nreturn: comparison result",
6460
+ None,
6461
+ )
6462
+
6463
+ CalcScriptVariablesVeneer = Symbol(
6464
+ [0x4C22C],
6465
+ [0x204C22C],
6466
+ None,
6467
+ "CalcScriptVariablesVeneer",
6468
+ "Likely a linker-generated veneer for CalcScriptVariables.\n\nSee https://developer.arm.com/documentation/dui0474/k/image-structure-and-generation/linker-generated-veneers/what-is-a-veneer-\n\nr0: script variable value 1\nr1: script variable value 2\nr2: calculation to perform on the script variables\nreturn: calculation result",
6469
+ None,
6470
+ )
6471
+
6472
+ CalcAndUpdateScriptVarWithOtherValue = Symbol(
6473
+ [0x4C238],
6474
+ [0x204C238],
6475
+ None,
6476
+ "CalcAndUpdateScriptVarWithOtherValue",
6477
+ "Runs a calculation on a script variable, then sets the script variable to the calculation result.\n\nr0: pointer to the local variable table\nr1: script variable ID\nr2: other value to use in the calculation\nr3: calculation to perform on the script variables",
6478
+ None,
6479
+ )
6480
+
6481
+ CalcAndUpdateScriptVarWithOtherScriptVar = Symbol(
6482
+ [0x4C270],
6483
+ [0x204C270],
6484
+ None,
6485
+ "CalcAndUpdateScriptVarWithOtherScriptVar",
6486
+ "Runs a calculation on a script variable, then sets the script variable to the calculation result.\n\nr0: pointer to the local variable table\nr1: script variable ID\nr2: other script variable to use in the calculation\nr3: calculation to perform on the script variables",
6487
+ None,
6488
+ )
6489
+
6490
+ CompareScriptVariablesVeneer = Symbol(
6491
+ [0x4C2BC],
6492
+ [0x204C2BC],
6493
+ None,
6494
+ "CompareScriptVariablesVeneer",
6495
+ "Likely a linker-generated veneer for CompareScriptVariables.\n\nSee https://developer.arm.com/documentation/dui0474/k/image-structure-and-generation/linker-generated-veneers/what-is-a-veneer-\n\nr0: script variable value 1\nr1: script variable value 2\nr2: comparison to perform on the script variables\nreturn: comparison result",
6496
+ None,
6497
+ )
6498
+
6499
+ LoadAndCompareScriptVarAndValue = Symbol(
6500
+ [0x4C2C8],
6501
+ [0x204C2C8],
6502
+ None,
6503
+ "LoadAndCompareScriptVarAndValue",
6504
+ "Runs a comparison on a script variable and another value, then returns the comparison result.\n\nr0: pointer to the local variable table\nr1: script variable ID\nr2: other script variable to use in the comparison\nr3: comparison to perform on the script variables\nreturn: comparison result",
6505
+ None,
6506
+ )
6507
+
6508
+ LoadAndCompareScriptVars = Symbol(
6509
+ [0x4C2E8],
6510
+ [0x204C2E8],
6511
+ None,
6512
+ "LoadAndCompareScriptVars",
6513
+ "Runs a comparison on two script variables, then returns the comparison result.\n\nr0: pointer to the local variable table\nr1: script variable ID\nr2: other script variable to use in the comparison\nr3: comparison to perform on the script variables\nreturn: comparison result",
6514
+ None,
6515
+ )
6516
+
6166
6517
  EventFlagResume = Symbol(
6167
6518
  [0x4C320],
6168
6519
  [0x204C320],
@@ -6622,6 +6973,15 @@ class JpArm9Functions:
6622
6973
  None,
6623
6974
  )
6624
6975
 
6976
+ TilesetSecondaryTerrainIsChasm = Symbol(
6977
+ [0x4F8B4],
6978
+ [0x204F8B4],
6979
+ None,
6980
+ "TilesetSecondaryTerrainIsChasm",
6981
+ "Returns true if the given tileset has a chasm secondary terrain.\n\nr0: tileset id\nreturn: bool",
6982
+ None,
6983
+ )
6984
+
6625
6985
  GetNbFloors = Symbol(
6626
6986
  [0x4F8D4],
6627
6987
  [0x204F8D4],
@@ -8841,7 +9201,7 @@ class JpArm9Functions:
8841
9201
  [0x205F110],
8842
9202
  None,
8843
9203
  "DungeonRequestsDoneWrapper",
8844
- "Calls DungeonRequestsDone with the second argument set to false.\n\nr0: ?\nreturn: number of mission completed",
9204
+ "Calls DungeonRequestsDone with the second argument set to false.\n\nr0: ?\nreturn: number of missions completed",
8845
9205
  None,
8846
9206
  )
8847
9207
 
@@ -8859,7 +9219,7 @@ class JpArm9Functions:
8859
9219
  [0x205F3B8],
8860
9220
  None,
8861
9221
  "AddMissionToJobList",
8862
- "Adds a mission to the Job List.\n\nr0: mission to add",
9222
+ "Adds a mission to the Job List.\n\nr0: mission to add\nreturn: bool (0 if mission was successfully added)",
8863
9223
  None,
8864
9224
  )
8865
9225
 
@@ -9088,12 +9448,21 @@ class JpArm9Functions:
9088
9448
  None,
9089
9449
  )
9090
9450
 
9091
- GetActorMatchingStorageId = Symbol(
9451
+ GetScriptEntityMonsterId = Symbol(
9452
+ [0x65C5C],
9453
+ [0x2065C5C],
9454
+ None,
9455
+ "GetScriptEntityMonsterId",
9456
+ "Returns the monster id of the script entity given by the id.\n\nr0: script_entity_id\nreturn: monster id",
9457
+ None,
9458
+ )
9459
+
9460
+ GetScriptEntityMatchingStorageId = Symbol(
9092
9461
  [0x65C80],
9093
9462
  [0x2065C80],
9094
9463
  None,
9095
- "GetActorMatchingStorageId",
9096
- "Note: unverified, ported from Irdkwia's notes\n\nr0: actor_id\nreturn: storage ID",
9464
+ "GetScriptEntityMatchingStorageId",
9465
+ "Returns the storage id matching the script entity given by the id.\n\nr0: script_entity_id\nreturn: storage ID",
9097
9466
  None,
9098
9467
  )
9099
9468
 
@@ -9102,7 +9471,7 @@ class JpArm9Functions:
9102
9471
  [0x2065E24],
9103
9472
  None,
9104
9473
  "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",
9474
+ "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
9475
  None,
9107
9476
  )
9108
9477
 
@@ -9111,7 +9480,7 @@ class JpArm9Functions:
9111
9480
  [0x2065E38],
9112
9481
  None,
9113
9482
  "SetActorTalkMain",
9114
- "Sets ACTOR_TALK_MAIN to be actor_id.\nImplements SPECIAL_PROC_SET_ACTOR_TALK_MAIN (see ScriptSpecialProcessCall).\n\nr0: actor_id",
9483
+ "Sets ACTOR_TALK_MAIN to be actor_id.\nImplements SPECIAL_PROC_SET_ACTOR_TALK_MAIN (see ScriptSpecialProcessCall).\n\nr0: script_entity_id",
9115
9484
  None,
9116
9485
  )
9117
9486
 
@@ -9120,7 +9489,7 @@ class JpArm9Functions:
9120
9489
  [0x2065E48],
9121
9490
  None,
9122
9491
  "SetActorTalkSub",
9123
- "Sets ACTOR_TALK_SUB to be actor_id.\nImplements SPECIAL_PROC_SET_ACTOR_TALK_SUB (see ScriptSpecialProcessCall).\n\nr0: actor_id",
9492
+ "Sets ACTOR_TALK_SUB to be actor_id.\nImplements SPECIAL_PROC_SET_ACTOR_TALK_SUB (see ScriptSpecialProcessCall).\n\nr0: script_entity_id",
9124
9493
  None,
9125
9494
  )
9126
9495
 
@@ -9261,10 +9630,16 @@ class JpArm9Functions:
9261
9630
  "DirectoryFile_LoadDirectoryFile", LoadFileInPack
9262
9631
  )
9263
9632
 
9633
+ IsAffectedByTaunt = _Deprecated("IsAffectedByTaunt", IsUsableWhileTaunted)
9634
+
9264
9635
  IsMoveRangeString19 = _Deprecated("IsMoveRangeString19", IsMoveRangeStringUser)
9265
9636
 
9266
9637
  GetLowKickMultiplier = _Deprecated("GetLowKickMultiplier", GetWeightMultiplier)
9267
9638
 
9639
+ GetActorMatchingStorageId = _Deprecated(
9640
+ "GetActorMatchingStorageId", GetScriptEntityMatchingStorageId
9641
+ )
9642
+
9268
9643
 
9269
9644
  class JpArm9Data:
9270
9645
 
@@ -9398,6 +9773,15 @@ class JpArm9Data:
9398
9773
  "uint32_t",
9399
9774
  )
9400
9775
 
9776
+ SINE_VALUE_TABLE = Symbol(
9777
+ [0x90F30],
9778
+ [0x2090F30],
9779
+ 0x1000,
9780
+ "SINE_VALUE_TABLE",
9781
+ "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.",
9782
+ "int16_t[1024]",
9783
+ )
9784
+
9401
9785
  NATURAL_LOG_VALUE_TABLE = Symbol(
9402
9786
  [0x91730],
9403
9787
  [0x2091730],
@@ -9480,13 +9864,13 @@ class JpArm9Data:
9480
9864
  "",
9481
9865
  )
9482
9866
 
9483
- ARM9_UNKNOWN_TABLE__NA_2097FF8 = Symbol(
9867
+ BABY_EXCLUSIVE_ITEM_PAIRS = Symbol(
9484
9868
  [0x982EC],
9485
9869
  [0x20982EC],
9486
9870
  0x40,
9487
- "ARM9_UNKNOWN_TABLE__NA_2097FF8",
9488
- "16*0x4 (0x2+0x2)\n\nNote: unverified, ported from Irdkwia's notes",
9489
- "",
9871
+ "BABY_EXCLUSIVE_ITEM_PAIRS",
9872
+ "Stores the IDs of each baby Pokemon (and Phione), as well as the exclusive item they hatch with.",
9873
+ "struct baby_exclusive_item_pair[16]",
9490
9874
  )
9491
9875
 
9492
9876
  KECLEON_SHOP_ITEM_TABLE_LISTS_1 = Symbol(
@@ -9750,6 +10134,15 @@ class JpArm9Data:
9750
10134
  "struct window_params",
9751
10135
  )
9752
10136
 
10137
+ NULL_OVERLAY_LOAD_ENTRY = Symbol(
10138
+ [0x9B9E0],
10139
+ [0x209B9E0],
10140
+ None,
10141
+ "NULL_OVERLAY_LOAD_ENTRY",
10142
+ "An overlay_load_entry whose values are all zeroes.\n\ntype: overlay_load_entry",
10143
+ "struct overlay_load_entry",
10144
+ )
10145
+
9753
10146
  PARTNER_TALK_KIND_TABLE = Symbol(
9754
10147
  [0x9E0B8],
9755
10148
  [0x209E0B8],
@@ -9759,6 +10152,33 @@ class JpArm9Data:
9759
10152
  "struct partner_talk_kind_table_entry[11]",
9760
10153
  )
9761
10154
 
10155
+ EVENT_FLAG_PROG_POS_INFO_CALC_SCRIPT_VARIABLES = Symbol(
10156
+ [0x9E280],
10157
+ [0x209E280],
10158
+ 0x8,
10159
+ "EVENT_FLAG_PROG_POS_INFO_CALC_SCRIPT_VARIABLES",
10160
+ "Debug information used to log an error with an unrecognized operation in CalcScriptVariables.",
10161
+ "struct prog_pos_info",
10162
+ )
10163
+
10164
+ EVENT_FLAG_PROG_POS_INFO_COMPARE_SCRIPT_VARIABLES = Symbol(
10165
+ [0x9E288],
10166
+ [0x209E288],
10167
+ 0x8,
10168
+ "EVENT_FLAG_PROG_POS_INFO_COMPARE_SCRIPT_VARIABLES",
10169
+ "Debug information used to log an error with an unrecognized operation in CompareScriptVariables.",
10170
+ "struct prog_pos_info",
10171
+ )
10172
+
10173
+ EVENT_FLAG_FILE_NAME = Symbol(
10174
+ [0x9E290],
10175
+ [0x209E290],
10176
+ 0x10,
10177
+ "EVENT_FLAG_FILE_NAME",
10178
+ "The file name 'event_flag.c', used for debug logging.",
10179
+ "",
10180
+ )
10181
+
9762
10182
  SCRIPT_VARS_LOCALS = Symbol(
9763
10183
  [0x9E2A0],
9764
10184
  [0x209E2A0],
@@ -9768,6 +10188,24 @@ class JpArm9Data:
9768
10188
  "struct script_local_var_table",
9769
10189
  )
9770
10190
 
10191
+ EVENT_FLAG_CALC_SCRIPT_VARIABLES_ERROR = Symbol(
10192
+ [0x9E2FC],
10193
+ [0x209E2FC],
10194
+ 0x20,
10195
+ "EVENT_FLAG_CALC_SCRIPT_VARIABLES_ERROR",
10196
+ "Error log message for an unrecognized operation in CalcScriptVariables.",
10197
+ "",
10198
+ )
10199
+
10200
+ EVENT_FLAG_COMPARE_SCRIPT_VARIABLES_ERROR = Symbol(
10201
+ [0x9E31C],
10202
+ [0x209E31C],
10203
+ 0x1C,
10204
+ "EVENT_FLAG_COMPARE_SCRIPT_VARIABLES_ERROR",
10205
+ "Error log message for an unrecognized operation in CompareScriptVariables.",
10206
+ "",
10207
+ )
10208
+
9771
10209
  SCRIPT_VARS = Symbol(
9772
10210
  [0x9EC44],
9773
10211
  [0x209EC44],
@@ -10209,6 +10647,15 @@ class JpArm9Data:
10209
10647
  "fx32_8",
10210
10648
  )
10211
10649
 
10650
+ TACTICS_FOLLOW_LEADER = Symbol(
10651
+ [0xA2CE0],
10652
+ [0x20A2CE0],
10653
+ 0xC,
10654
+ "TACTICS_FOLLOW_LEADER",
10655
+ "Array of boolean values corresponding to each tactic_id enum, determining whether the tactic makes party members follow the leader.",
10656
+ "bool[12]",
10657
+ )
10658
+
10212
10659
  FORBIDDEN_FORGOT_MOVE_LIST = Symbol(
10213
10660
  [0xA2CEC],
10214
10661
  [0x20A2CEC],
@@ -10286,7 +10733,7 @@ class JpArm9Data:
10286
10733
  [0x20A2EBC],
10287
10734
  0xC8,
10288
10735
  "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]",
10736
+ "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
10737
  "struct secondary_terrain_type_8[200]",
10291
10738
  )
10292
10739
 
@@ -10985,6 +11432,15 @@ class JpArm9Data:
10985
11432
  "int16_t[6]",
10986
11433
  )
10987
11434
 
11435
+ MENU_CONTROL_PTR = Symbol(
11436
+ [0xB11D8],
11437
+ [0x20B11D8],
11438
+ None,
11439
+ "MENU_CONTROL_PTR",
11440
+ "Pointer to the master struct used for handling menus.\n\ntype: menu_control*",
11441
+ "struct menu_control*",
11442
+ )
11443
+
10988
11444
  KEYBOARD_STRING_IDS = Symbol(
10989
11445
  [0xB1240],
10990
11446
  [0x20B1240],
@@ -11063,7 +11519,7 @@ class JpArm9Data:
11063
11519
  None,
11064
11520
  "MONSTER_DATA_TABLE_PTR",
11065
11521
  "[Runtime] Points to data about monster species.",
11066
- "undefined*",
11522
+ "struct monster_data_table*",
11067
11523
  )
11068
11524
 
11069
11525
  UNOWN_SPECIES_ADDITIONAL_CHAR_PTR_TABLE = Symbol(
@@ -11254,6 +11710,14 @@ class JpArm9Data:
11254
11710
  "EXCLUSIVE_ITEM_ATTACK_BOOSTS", EXCLUSIVE_ITEM_STAT_BOOST_DATA
11255
11711
  )
11256
11712
 
11713
+ EVENT_FLAG_PROG_POS_INFO = _Deprecated(
11714
+ "EVENT_FLAG_PROG_POS_INFO", EVENT_FLAG_PROG_POS_INFO_CALC_SCRIPT_VARIABLES
11715
+ )
11716
+
11717
+ EVENT_FLAG_EXPANSION_ERROR = _Deprecated(
11718
+ "EVENT_FLAG_EXPANSION_ERROR", EVENT_FLAG_CALC_SCRIPT_VARIABLES_ERROR
11719
+ )
11720
+
11257
11721
  DIRECTORY_FILES_EXTRACTED = _Deprecated(
11258
11722
  "DIRECTORY_FILES_EXTRACTED", PACK_FILES_OPENED
11259
11723
  )
@@ -13239,6 +13703,15 @@ class JpLibsFunctions:
13239
13703
  None,
13240
13704
  )
13241
13705
 
13706
+ PM_ForceToPowerOff = Symbol(
13707
+ [0x15F34],
13708
+ [0x20822F4],
13709
+ None,
13710
+ "PM_ForceToPowerOff",
13711
+ "Powers off the system.\n\nreturn: ?",
13712
+ None,
13713
+ )
13714
+
13242
13715
  abs = Symbol(
13243
13716
  [0x1A484],
13244
13717
  [0x2086844],
@@ -13572,12 +14045,12 @@ class JpLibsFunctions:
13572
14045
  None,
13573
14046
  )
13574
14047
 
13575
- _dgeq = Symbol(
14048
+ _dgr = Symbol(
13576
14049
  [0x22E04],
13577
14050
  [0x208F1C4],
13578
14051
  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",
14052
+ "_dgr",
14053
+ "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
14054
  None,
13582
14055
  )
13583
14056
 
@@ -17206,6 +17679,15 @@ class JpOverlay10Data:
17206
17679
  "struct dungeon_id_8",
17207
17680
  )
17208
17681
 
17682
+ FIERY_DRUM_RECRUIT_BOOST = Symbol(
17683
+ [0x78D8],
17684
+ [0x22C5AF8],
17685
+ 0x2,
17686
+ "FIERY_DRUM_RECRUIT_BOOST",
17687
+ "The amount added to the recruit rate with compatible species when holding a Fiery Drum.",
17688
+ "int16_t",
17689
+ )
17690
+
17209
17691
  BAD_POISON_DAMAGE_COOLDOWN = Symbol(
17210
17692
  [0x78DC],
17211
17693
  [0x22C5AFC],
@@ -17215,6 +17697,15 @@ class JpOverlay10Data:
17215
17697
  "int16_t",
17216
17698
  )
17217
17699
 
17700
+ ICY_FLUTE_RECRUIT_BOOST = Symbol(
17701
+ [0x78E4],
17702
+ [0x22C5B04],
17703
+ 0x2,
17704
+ "ICY_FLUTE_RECRUIT_BOOST",
17705
+ "The amount added to the recruit rate with compatible species when holding an Icy Flute.",
17706
+ "int16_t",
17707
+ )
17708
+
17218
17709
  PROTEIN_STAT_BOOST = Symbol(
17219
17710
  [0x78E8],
17220
17711
  [0x22C5B08],
@@ -17260,6 +17751,15 @@ class JpOverlay10Data:
17260
17751
  "int16_t",
17261
17752
  )
17262
17753
 
17754
+ GOLDEN_MASK_RECRUIT_BOOST = Symbol(
17755
+ [0x7904],
17756
+ [0x22C5B24],
17757
+ 0x2,
17758
+ "GOLDEN_MASK_RECRUIT_BOOST",
17759
+ "The amount added to the recruit rate when holding a Golden Mask.",
17760
+ "int16_t",
17761
+ )
17762
+
17263
17763
  IRON_TAIL_LOWER_DEFENSE_CHANCE = Symbol(
17264
17764
  [0x7908],
17265
17765
  [0x22C5B28],
@@ -17305,6 +17805,15 @@ class JpOverlay10Data:
17305
17805
  "int16_t",
17306
17806
  )
17307
17807
 
17808
+ HURL_DAMAGE = Symbol(
17809
+ [0x7920],
17810
+ [0x22C5B40],
17811
+ 0x2,
17812
+ "HURL_DAMAGE",
17813
+ "Damage dealt from hurling a monster at another monster (10).",
17814
+ "int16_t",
17815
+ )
17816
+
17308
17817
  TRAP_BUSTER_ACTIVATION_CHANCE = Symbol(
17309
17818
  [0x7924],
17310
17819
  [0x22C5B44],
@@ -17341,6 +17850,15 @@ class JpOverlay10Data:
17341
17850
  "int16_t",
17342
17851
  )
17343
17852
 
17853
+ AMBER_TEAR_RECRUIT_BOOST = Symbol(
17854
+ [0x7944],
17855
+ [0x22C5B64],
17856
+ 0x2,
17857
+ "AMBER_TEAR_RECRUIT_BOOST",
17858
+ "The amount added to the recruit rate when holding an Amber Tear.",
17859
+ "int16_t",
17860
+ )
17861
+
17344
17862
  MUDDY_WATER_LOWER_ACCURACY_CHANCE = Symbol(
17345
17863
  [0x794C],
17346
17864
  [0x22C5B6C],
@@ -17449,6 +17967,15 @@ class JpOverlay10Data:
17449
17967
  "int16_t",
17450
17968
  )
17451
17969
 
17970
+ CURSE_DAMAGE_COOLDOWN = Symbol(
17971
+ [0x7984],
17972
+ [0x22C5BA4],
17973
+ None,
17974
+ "CURSE_DAMAGE_COOLDOWN",
17975
+ "The number of turns between passive curse damage (3).",
17976
+ "int16_t",
17977
+ )
17978
+
17452
17979
  STEEL_WING_BOOST_DEFENSE_CHANCE = Symbol(
17453
17980
  [0x798C],
17454
17981
  [0x22C5BAC],
@@ -17503,6 +18030,15 @@ class JpOverlay10Data:
17503
18030
  "int16_t",
17504
18031
  )
17505
18032
 
18033
+ PITFALL_TRAP_DAMAGE = Symbol(
18034
+ [0x79AC],
18035
+ [0x22C5BCC],
18036
+ 0x2,
18037
+ "PITFALL_TRAP_DAMAGE",
18038
+ "Damage dealt by pitfall traps (5).",
18039
+ "int16_t",
18040
+ )
18041
+
17506
18042
  CHARGE_BEAM_BOOST_SPECIAL_ATTACK_CHANCE = Symbol(
17507
18043
  [0x79B8],
17508
18044
  [0x22C5BD8],
@@ -17530,6 +18066,15 @@ class JpOverlay10Data:
17530
18066
  "int16_t",
17531
18067
  )
17532
18068
 
18069
+ FRIEND_BOW_FAST_FRIEND_BOOST = Symbol(
18070
+ [0x79C4],
18071
+ [0x22C5BE4],
18072
+ 0x2,
18073
+ "FRIEND_BOW_FAST_FRIEND_BOOST",
18074
+ "The amount added to the recruit rate when holding a Friend Bow or with the Fast Friend IQ skill.",
18075
+ "int16_t",
18076
+ )
18077
+
17533
18078
  OCTAZOOKA_LOWER_ACCURACY_CHANCE = Symbol(
17534
18079
  [0x79C8],
17535
18080
  [0x22C5BE8],
@@ -17584,6 +18129,15 @@ class JpOverlay10Data:
17584
18129
  "int16_t",
17585
18130
  )
17586
18131
 
18132
+ CUTE_CHARM_INFATUATE_CHANCE = Symbol(
18133
+ [0x79EC],
18134
+ [0x22C5C0C],
18135
+ 0x2,
18136
+ "CUTE_CHARM_INFATUATE_CHANCE",
18137
+ "The chance of Cute Charm infatuating, as a percentage (12%).",
18138
+ "int16_t",
18139
+ )
18140
+
17587
18141
  LICK_PARALYZE_CHANCE = Symbol(
17588
18142
  [0x79F0],
17589
18143
  [0x22C5C10],
@@ -17728,6 +18282,15 @@ class JpOverlay10Data:
17728
18282
  "int16_t",
17729
18283
  )
17730
18284
 
18285
+ INGRAIN_BONUS_REGEN = Symbol(
18286
+ [0x7A58],
18287
+ [0x22C5C78],
18288
+ None,
18289
+ "INGRAIN_BONUS_REGEN",
18290
+ "The passive bonus regen given by the Ingrain status condition (10).",
18291
+ "int16_t",
18292
+ )
18293
+
17731
18294
  AFTERMATH_CHANCE = Symbol(
17732
18295
  [0x7A5C],
17733
18296
  [0x22C5C7C],
@@ -17755,6 +18318,15 @@ class JpOverlay10Data:
17755
18318
  "int16_t",
17756
18319
  )
17757
18320
 
18321
+ WRAP_DAMAGE = Symbol(
18322
+ [0x7A98],
18323
+ [0x22C5CB8],
18324
+ None,
18325
+ "WRAP_DAMAGE",
18326
+ "Damage dealt by the wrap status condition (6).",
18327
+ "int16_t",
18328
+ )
18329
+
17758
18330
  TYPE_ADVANTAGE_MASTER_CRIT_RATE = Symbol(
17759
18331
  [0x7AA8],
17760
18332
  [0x22C5CC8],
@@ -17764,6 +18336,15 @@ class JpOverlay10Data:
17764
18336
  "int16_t",
17765
18337
  )
17766
18338
 
18339
+ INGRAIN_BONUS_REGEN_COOLDOWN = Symbol(
18340
+ [0x7AB0],
18341
+ [0x22C5CD0],
18342
+ None,
18343
+ "INGRAIN_BONUS_REGEN_COOLDOWN",
18344
+ "The number of turns between ingrain health regeneration (5).",
18345
+ "int16_t",
18346
+ )
18347
+
17767
18348
  ORAN_BERRY_HP_RESTORATION = Symbol(
17768
18349
  [0x7AB4],
17769
18350
  [0x22C5CD4],
@@ -17773,6 +18354,15 @@ class JpOverlay10Data:
17773
18354
  "int16_t",
17774
18355
  )
17775
18356
 
18357
+ WRAP_DAMAGE_COOLDOWN = Symbol(
18358
+ [0x7AB8],
18359
+ [0x22C5CD8],
18360
+ None,
18361
+ "WRAP_DAMAGE_COOLDOWN",
18362
+ "The number of turns between passive wrap damage (2).",
18363
+ "int16_t",
18364
+ )
18365
+
17776
18366
  SITRUS_BERRY_FULL_HP_BOOST = Symbol(
17777
18367
  [0x7ABC],
17778
18368
  [0x22C5CDC],
@@ -17831,6 +18421,15 @@ class JpOverlay10Data:
17831
18421
  [0x7AEC], [0x22C5D0C], 0x2, "STICK_POWER", "Attack power for Sticks.", "int16_t"
17832
18422
  )
17833
18423
 
18424
+ AQUA_RING_BONUS_REGEN = Symbol(
18425
+ [0x7AF0],
18426
+ [0x22C5D10],
18427
+ None,
18428
+ "AQUA_RING_BONUS_REGEN",
18429
+ "The passive bonus regen given by the Aqua Ring status condition (8).",
18430
+ "int16_t",
18431
+ )
18432
+
17834
18433
  BUBBLE_LOWER_SPEED_CHANCE = Symbol(
17835
18434
  [0x7AF4],
17836
18435
  [0x22C5D14],
@@ -17885,6 +18484,15 @@ class JpOverlay10Data:
17885
18484
  "int16_t",
17886
18485
  )
17887
18486
 
18487
+ CHATOT_SCARF_BOUNCE_CHANCE = Symbol(
18488
+ [0x7B10],
18489
+ [0x22C5D30],
18490
+ 0x2,
18491
+ "CHATOT_SCARF_BOUNCE_CHANCE",
18492
+ "The chance of the Chatot Scarf bouncing back a move, as a percentage (20%).",
18493
+ "int16_t",
18494
+ )
18495
+
17888
18496
  WEATHER_MOVE_TURN_COUNT = Symbol(
17889
18497
  [0x7B1C],
17890
18498
  [0x22C5D3C],
@@ -18173,6 +18781,15 @@ class JpOverlay10Data:
18173
18781
  "int16_t",
18174
18782
  )
18175
18783
 
18784
+ BAD_WEATHER_DAMAGE = Symbol(
18785
+ [0x7BB4],
18786
+ [0x22C5DD4],
18787
+ None,
18788
+ "BAD_WEATHER_DAMAGE",
18789
+ "Damage dealt by the Sandstorm and Hail weather conditions (3).",
18790
+ "int16_t",
18791
+ )
18792
+
18176
18793
  SCOPE_LENS_CRIT_RATE_BOOST = Symbol(
18177
18794
  [0x7BB8],
18178
18795
  [0x22C5DD8],
@@ -18191,6 +18808,51 @@ class JpOverlay10Data:
18191
18808
  "int16_t",
18192
18809
  )
18193
18810
 
18811
+ SKY_MELODICA_RECRUIT_BOOST = Symbol(
18812
+ [0x7BC4],
18813
+ [0x22C5DE4],
18814
+ 0x2,
18815
+ "SKY_MELODICA_RECRUIT_BOOST",
18816
+ "The amount added to the recruit rate with compatible species when holding a Sky Melodica.",
18817
+ "int16_t",
18818
+ )
18819
+
18820
+ GRASS_CORNET_RECRUIT_BOOST = Symbol(
18821
+ [0x7BC8],
18822
+ [0x22C5DE8],
18823
+ 0x2,
18824
+ "GRASS_CORNET_RECRUIT_BOOST",
18825
+ "The amount added to the recruit rate with compatible species when holding a Grass Cornet.",
18826
+ "int16_t",
18827
+ )
18828
+
18829
+ ROCK_HORN_RECRUIT_BOOST = Symbol(
18830
+ [0x7BCC],
18831
+ [0x22C5DEC],
18832
+ 0x2,
18833
+ "ROCK_HORN_RECRUIT_BOOST",
18834
+ "The amount added to the recruit rate with compatible species when holding a Rock Horn.",
18835
+ "int16_t",
18836
+ )
18837
+
18838
+ AQUA_MONICA_RECRUIT_BOOST = Symbol(
18839
+ [0x7BD0],
18840
+ [0x22C5DF0],
18841
+ 0x2,
18842
+ "AQUA_MONICA_RECRUIT_BOOST",
18843
+ "The amount added to the recruit rate with compatible species when holding a Aqua Monica.",
18844
+ "int16_t",
18845
+ )
18846
+
18847
+ TERRA_CYMBAL_RECRUIT_BOOST = Symbol(
18848
+ [0x7BD4],
18849
+ [0x22C5DF4],
18850
+ 0x2,
18851
+ "TERRA_CYMBAL_RECRUIT_BOOST",
18852
+ "The amount added to the recruit rate with compatible species when holding a Terra Cymbal.",
18853
+ "int16_t",
18854
+ )
18855
+
18194
18856
  ME_FIRST_MULTIPLIER = Symbol(
18195
18857
  [0x7BD8],
18196
18858
  [0x22C5DF8],
@@ -18236,6 +18898,60 @@ class JpOverlay10Data:
18236
18898
  "int16_t[2]",
18237
18899
  )
18238
18900
 
18901
+ SLEEPLESSNESS_TURN_RANGE = Symbol(
18902
+ [0x7BF0],
18903
+ [0x22C5E10],
18904
+ 0x4,
18905
+ "SLEEPLESSNESS_TURN_RANGE",
18906
+ "The turn range for the Sleepless status, [0x7F, 0x7F] (infinite).\n\ntype: int16_t[2]",
18907
+ "int16_t[2]",
18908
+ )
18909
+
18910
+ REFLECT_TURN_RANGE = Symbol(
18911
+ [0x7BF4],
18912
+ [0x22C5E14],
18913
+ 0x4,
18914
+ "REFLECT_TURN_RANGE",
18915
+ "The turn range for the Reflect status, [10, 12).\n\ntype: int16_t[2]",
18916
+ "int16_t[2]",
18917
+ )
18918
+
18919
+ LIGHT_SCREEN_TURN_RANGE = Symbol(
18920
+ [0x7BF8],
18921
+ [0x22C5E18],
18922
+ 0x4,
18923
+ "LIGHT_SCREEN_TURN_RANGE",
18924
+ "The turn range for the Light Screen status, [10, 12).\n\ntype: int16_t[2]",
18925
+ "int16_t[2]",
18926
+ )
18927
+
18928
+ SAFEGUARD_TURN_RANGE = Symbol(
18929
+ [0x7BFC],
18930
+ [0x22C5E1C],
18931
+ 0x4,
18932
+ "SAFEGUARD_TURN_RANGE",
18933
+ "The turn range for the Safeguard status, [15, 20).\n\ntype: int16_t[2]",
18934
+ "int16_t[2]",
18935
+ )
18936
+
18937
+ MIST_TURN_RANGE = Symbol(
18938
+ [0x7C00],
18939
+ [0x22C5E20],
18940
+ 0x4,
18941
+ "MIST_TURN_RANGE",
18942
+ "The turn range for the Mist status, [10, 14).\n\ntype: int16_t[2]",
18943
+ "int16_t[2]",
18944
+ )
18945
+
18946
+ MAGIC_COAT_TURN_RANGE = Symbol(
18947
+ [0x7C08],
18948
+ [0x22C5E28],
18949
+ 0x4,
18950
+ "MAGIC_COAT_TURN_RANGE",
18951
+ "The turn range for the Magic Coat status, [10, 14).\n\ntype: int16_t[2]",
18952
+ "int16_t[2]",
18953
+ )
18954
+
18239
18955
  BURN_DAMAGE_MULTIPLIER = Symbol(
18240
18956
  [0x7C0C],
18241
18957
  [0x22C5E2C],
@@ -18263,6 +18979,15 @@ class JpOverlay10Data:
18263
18979
  "fx32_8",
18264
18980
  )
18265
18981
 
18982
+ SET_REFLECT_STATUS_TURN_RANGE = Symbol(
18983
+ [0x7C18],
18984
+ [0x22C5E38],
18985
+ 0x4,
18986
+ "SET_REFLECT_STATUS_TURN_RANGE",
18987
+ "The turn range for the statuses (Counter, Mini Counter, Metal Burst) set by SetReflectStatus, [6, 12).\n\ntype: int16_t[2]",
18988
+ "int16_t[2]",
18989
+ )
18990
+
18266
18991
  MATCHUP_IMMUNE_MULTIPLIER = Symbol(
18267
18992
  [0x7C20],
18268
18993
  [0x22C5E40],
@@ -18272,6 +18997,15 @@ class JpOverlay10Data:
18272
18997
  "fx32_8",
18273
18998
  )
18274
18999
 
19000
+ GASTRO_ACID_TURN_RANGE = Symbol(
19001
+ [0x7C34],
19002
+ [0x22C5E54],
19003
+ 0x4,
19004
+ "GASTRO_ACID_TURN_RANGE",
19005
+ "The turn range for the Gastro Acid status, [4, 10).\n\ntype: int16_t[2]",
19006
+ "int16_t[2]",
19007
+ )
19008
+
18275
19009
  SPORT_CONDITION_TURN_RANGE = Symbol(
18276
19010
  [0x7C54],
18277
19011
  [0x22C5E74],
@@ -18299,6 +19033,15 @@ class JpOverlay10Data:
18299
19033
  "int",
18300
19034
  )
18301
19035
 
19036
+ DECOY_TURN_RANGE = Symbol(
19037
+ [0x7C7C],
19038
+ [0x22C5E9C],
19039
+ 0x4,
19040
+ "DECOY_TURN_RANGE",
19041
+ "The turn range for the Decoy status, [20, 50).\n\ntype: int16_t[2]",
19042
+ "int16_t[2]",
19043
+ )
19044
+
18302
19045
  TINTED_LENS_MULTIPLIER = Symbol(
18303
19046
  [0x7C88],
18304
19047
  [0x22C5EA8],
@@ -18434,6 +19177,15 @@ class JpOverlay10Data:
18434
19177
  "fx32_8",
18435
19178
  )
18436
19179
 
19180
+ MIRROR_MOVE_TURN_RANGE = Symbol(
19181
+ [0x7D08],
19182
+ [0x22C5F28],
19183
+ 0x4,
19184
+ "MIRROR_MOVE_TURN_RANGE",
19185
+ "The turn range for the Mirror Move status, [1, 3).\n\ntype: int16_t[2]",
19186
+ "int16_t[2]",
19187
+ )
19188
+
18437
19189
  AIR_BLADE_DAMAGE_MULTIPLIER = Symbol(
18438
19190
  [0x7D0C],
18439
19191
  [0x22C5F2C],
@@ -18470,6 +19222,15 @@ class JpOverlay10Data:
18470
19222
  "int16_t[2]",
18471
19223
  )
18472
19224
 
19225
+ CRINGE_TURN_RANGE = Symbol(
19226
+ [0x7D4C],
19227
+ [0x22C5F6C],
19228
+ 0x4,
19229
+ "CRINGE_TURN_RANGE",
19230
+ "The turn range for the Cringe status, [1, 1].\n\ntype: int16_t[2]",
19231
+ "int16_t[2]",
19232
+ )
19233
+
18473
19234
  SPEED_BOOST_TURN_RANGE = Symbol(
18474
19235
  [0x7D50],
18475
19236
  [0x22C5F70],
@@ -18479,6 +19240,24 @@ class JpOverlay10Data:
18479
19240
  "int16_t[2]",
18480
19241
  )
18481
19242
 
19243
+ SPEED_LOWER_TURN_RANGE = Symbol(
19244
+ [0x7D54],
19245
+ [0x22C5F74],
19246
+ None,
19247
+ "SPEED_LOWER_TURN_RANGE",
19248
+ "The turn range for lowered speed, [6, 8].\n\ntype: int16_t[2]",
19249
+ "int16_t[2]",
19250
+ )
19251
+
19252
+ PARALYSIS_TURN_RANGE = Symbol(
19253
+ [0x7D5C],
19254
+ [0x22C5F7C],
19255
+ None,
19256
+ "PARALYSIS_TURN_RANGE",
19257
+ "The turn range for the Paralysis status, [1, 2].\n\ntype: int16_t[2]",
19258
+ "int16_t[2]",
19259
+ )
19260
+
18482
19261
  SOLARBEAM_DAMAGE_MULTIPLIER = Symbol(
18483
19262
  [0x7D6C],
18484
19263
  [0x22C5F8C],
@@ -18893,6 +19672,10 @@ class JpOverlay10Data:
18893
19672
  "struct data_processing_instruction",
18894
19673
  )
18895
19674
 
19675
+ REFLECT_LIGHT_SCREEN_TURN_RANGE = _Deprecated(
19676
+ "REFLECT_LIGHT_SCREEN_TURN_RANGE", REFLECT_TURN_RANGE
19677
+ )
19678
+
18896
19679
 
18897
19680
  class JpOverlay10Section:
18898
19681
  name = "overlay10"
@@ -19205,6 +19988,33 @@ class JpOverlay11Functions:
19205
19988
  None,
19206
19989
  )
19207
19990
 
19991
+ GroundBgInit = Symbol(
19992
+ [0xF96C],
19993
+ [0x22ED24C],
19994
+ None,
19995
+ "GroundBgInit",
19996
+ "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)",
19997
+ None,
19998
+ )
19999
+
20000
+ GroundBgFreeAll = Symbol(
20001
+ [0xFC00],
20002
+ [0x22ED4E0],
20003
+ None,
20004
+ "GroundBgFreeAll",
20005
+ "Frees memory and closes any open files in the ground_bg struct.\n\nr0: ground_bg struct pointer",
20006
+ None,
20007
+ )
20008
+
20009
+ GroundBgCloseOpenedFiles = Symbol(
20010
+ [0xFD1C],
20011
+ [0x22ED5FC],
20012
+ None,
20013
+ "GroundBgCloseOpenedFiles",
20014
+ "Closes any open files in the ground_bg struct.\n\nr0: ground_bg struct pointer",
20015
+ None,
20016
+ )
20017
+
19208
20018
  LoadMapType10 = Symbol(
19209
20019
  [0x10A78],
19210
20020
  [0x22EE358],
@@ -19223,6 +20033,15 @@ class JpOverlay11Functions:
19223
20033
  None,
19224
20034
  )
19225
20035
 
20036
+ BmaLayerNrlDecompressor = Symbol(
20037
+ [0x12028],
20038
+ [0x22EF908],
20039
+ None,
20040
+ "BmaLayerNrlDecompressor",
20041
+ "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",
20042
+ None,
20043
+ )
20044
+
19226
20045
  GetSpecialLayoutBackground = Symbol(
19227
20046
  [0x152C8],
19228
20047
  [0x22F2BA8],
@@ -20132,6 +20951,15 @@ class JpOverlay11Functions:
20132
20951
  None,
20133
20952
  )
20134
20953
 
20954
+ SwapShopInventoryManager = Symbol(
20955
+ [0x2EED0],
20956
+ [0x230C7B0],
20957
+ None,
20958
+ "SwapShopInventoryManager",
20959
+ "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.",
20960
+ None,
20961
+ )
20962
+
20135
20963
  HandleControlsTopScreenGround = Symbol(
20136
20964
  [0x322E4],
20137
20965
  [0x230FBC4],
@@ -20308,6 +21136,15 @@ class JpOverlay11Data:
20308
21136
  "struct monster_id_16[22]",
20309
21137
  )
20310
21138
 
21139
+ POSITION_ZERO = Symbol(
21140
+ [0x4487C],
21141
+ [0x232215C],
21142
+ 0x8,
21143
+ "POSITION_ZERO",
21144
+ "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",
21145
+ "struct pixel_position",
21146
+ )
21147
+
20311
21148
  LEVEL_TILEMAP_LIST = Symbol(
20312
21149
  [0x449B0],
20313
21150
  [0x2322290],
@@ -20397,6 +21234,15 @@ class JpOverlay11Data:
20397
21234
  "struct main_ground_data",
20398
21235
  )
20399
21236
 
21237
+ SWAP_SHOP_INVENTORY_PTRS = Symbol(
21238
+ [0x48A24],
21239
+ [0x2326304],
21240
+ None,
21241
+ "SWAP_SHOP_INVENTORY_PTRS",
21242
+ "Host pointers to multiple structures used for performing internal Swap Shop checks.",
21243
+ "struct swap_shop_inventory_ptrs",
21244
+ )
21245
+
20400
21246
  WORLD_MAP_MODE = Symbol(
20401
21247
  [0x48A64],
20402
21248
  [0x2326344],
@@ -22372,7 +23218,68 @@ class JpOverlay20Section:
22372
23218
 
22373
23219
  class JpOverlay21Functions:
22374
23220
 
22375
- pass
23221
+ SwapShopDialogueManager = Symbol(
23222
+ [0x0],
23223
+ [0x238B6A0],
23224
+ None,
23225
+ "SwapShopDialogueManager",
23226
+ "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.",
23227
+ None,
23228
+ )
23229
+
23230
+ GetFirstExclusivePrerequisite = Symbol(
23231
+ [0x16B8],
23232
+ [0x238CD58],
23233
+ None,
23234
+ "GetFirstExclusivePrerequisite",
23235
+ "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.",
23236
+ None,
23237
+ )
23238
+
23239
+ SwapShopEntryPoint = Symbol(
23240
+ [0x1720],
23241
+ [0x238CDC0],
23242
+ None,
23243
+ "SwapShopEntryPoint",
23244
+ "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.",
23245
+ None,
23246
+ )
23247
+
23248
+ SwapShopDestructor = Symbol(
23249
+ [0x17D4],
23250
+ [0x238CE74],
23251
+ None,
23252
+ "SwapShopDestructor",
23253
+ "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.",
23254
+ None,
23255
+ )
23256
+
23257
+ SwapShopMainManager = Symbol(
23258
+ [0x1800],
23259
+ [0x238CEA0],
23260
+ None,
23261
+ "SwapShopMainManager",
23262
+ "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?",
23263
+ None,
23264
+ )
23265
+
23266
+ CloseTextboxAndSimpleMenu = Symbol(
23267
+ [0x27F4],
23268
+ [0x238DE94],
23269
+ None,
23270
+ "CloseTextboxAndSimpleMenu",
23271
+ "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.",
23272
+ None,
23273
+ )
23274
+
23275
+ SwapShopPrintCurrentGold = Symbol(
23276
+ [0x2878],
23277
+ [0x238DF18],
23278
+ None,
23279
+ "SwapShopPrintCurrentGold",
23280
+ "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",
23281
+ None,
23282
+ )
22376
23283
 
22377
23284
 
22378
23285
  class JpOverlay21Data:
@@ -22382,7 +23289,7 @@ class JpOverlay21Data:
22382
23289
  [0x238DF98],
22383
23290
  None,
22384
23291
  "SWAP_SHOP_WINDOW_PARAMS_1",
22385
- "Note: unverified, ported from Irdkwia's notes",
23292
+ "Used with SwapShopPrintCurrentGold for a simple textbox.",
22386
23293
  "struct window_params",
22387
23294
  )
22388
23295
 
@@ -22391,7 +23298,7 @@ class JpOverlay21Data:
22391
23298
  [0x238DFA8],
22392
23299
  0x18,
22393
23300
  "SWAP_SHOP_MENU_ITEMS_CONFIRM",
22394
- "",
23301
+ "Used with SWAP_SHOP_WINDOW_PARAMS_7.",
22395
23302
  "struct simple_menu_id_item[3]",
22396
23303
  )
22397
23304
 
@@ -22400,7 +23307,7 @@ class JpOverlay21Data:
22400
23307
  [0x238DFC0],
22401
23308
  0x18,
22402
23309
  "SWAP_SHOP_SUBMENU_ITEMS_1",
22403
- "",
23310
+ "Used with SWAP_SHOP_WINDOW_PARAMS_6.",
22404
23311
  "struct simple_menu_id_item[3]",
22405
23312
  )
22406
23313
 
@@ -22409,7 +23316,7 @@ class JpOverlay21Data:
22409
23316
  [0x238DFD8],
22410
23317
  0x20,
22411
23318
  "SWAP_SHOP_SUBMENU_ITEMS_2",
22412
- "",
23319
+ "Used with SWAP_SHOP_WINDOW_PARAMS_7.",
22413
23320
  "struct simple_menu_id_item[4]",
22414
23321
  )
22415
23322
 
@@ -22418,7 +23325,7 @@ class JpOverlay21Data:
22418
23325
  [0x238DFF8],
22419
23326
  0x20,
22420
23327
  "SWAP_SHOP_MAIN_MENU_ITEMS_1",
22421
- "",
23328
+ "Used with SWAP_SHOP_WINDOW_PARAMS_6.",
22422
23329
  "struct simple_menu_id_item[4]",
22423
23330
  )
22424
23331
 
@@ -22427,7 +23334,7 @@ class JpOverlay21Data:
22427
23334
  [0x238E018],
22428
23335
  0x28,
22429
23336
  "SWAP_SHOP_MAIN_MENU_ITEMS_2",
22430
- "",
23337
+ "Used alongside SWAP_SHOP_WINDOW_PARAMS_5.",
22431
23338
  "struct simple_menu_id_item[5]",
22432
23339
  )
22433
23340
 
@@ -22436,7 +23343,7 @@ class JpOverlay21Data:
22436
23343
  [0x238E040],
22437
23344
  0x30,
22438
23345
  "SWAP_SHOP_SUBMENU_ITEMS_3",
22439
- "",
23346
+ "Used alongside SWAP_SHOP_WINDOW_PARAMS_9.",
22440
23347
  "struct simple_menu_id_item[6]",
22441
23348
  )
22442
23349
 
@@ -22445,8 +23352,8 @@ class JpOverlay21Data:
22445
23352
  None,
22446
23353
  None,
22447
23354
  "OVERLAY21_UNKNOWN_STRING_IDS",
22448
- "Note: unverified, ported from Irdkwia's notes",
22449
- "",
23355
+ "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.",
23356
+ "int16_t[24]",
22450
23357
  )
22451
23358
 
22452
23359
  SWAP_SHOP_WINDOW_PARAMS_2 = Symbol(
@@ -22454,7 +23361,7 @@ class JpOverlay21Data:
22454
23361
  None,
22455
23362
  None,
22456
23363
  "SWAP_SHOP_WINDOW_PARAMS_2",
22457
- "Note: unverified, ported from Irdkwia's notes",
23364
+ "Seem to be completely unused by the Swap Shop.",
22458
23365
  "struct window_params",
22459
23366
  )
22460
23367
 
@@ -22463,7 +23370,7 @@ class JpOverlay21Data:
22463
23370
  None,
22464
23371
  None,
22465
23372
  "SWAP_SHOP_WINDOW_PARAMS_3",
22466
- "Note: unverified, ported from Irdkwia's notes",
23373
+ "Seem to be completely unused by the Swap Shop.",
22467
23374
  "struct window_params",
22468
23375
  )
22469
23376
 
@@ -22472,7 +23379,7 @@ class JpOverlay21Data:
22472
23379
  None,
22473
23380
  None,
22474
23381
  "SWAP_SHOP_WINDOW_PARAMS_4",
22475
- "Note: unverified, ported from Irdkwia's notes",
23382
+ "Seem to be completely unused by the Swap Shop.",
22476
23383
  "struct window_params",
22477
23384
  )
22478
23385
 
@@ -22481,7 +23388,7 @@ class JpOverlay21Data:
22481
23388
  [0x238E0D8],
22482
23389
  None,
22483
23390
  "SWAP_SHOP_WINDOW_PARAMS_5",
22484
- "Note: unverified, ported from Irdkwia's notes",
23391
+ "Used alongside SWAP_SHOP_MAIN_MENU_ITEMS_2.",
22485
23392
  "struct window_params",
22486
23393
  )
22487
23394
 
@@ -22490,7 +23397,7 @@ class JpOverlay21Data:
22490
23397
  [0x238E0E8],
22491
23398
  None,
22492
23399
  "SWAP_SHOP_WINDOW_PARAMS_6",
22493
- "Note: unverified, ported from Irdkwia's notes",
23400
+ "Used alongside both SWAP_SHOP_MAIN_MENU_ITEMS_1 and SWAP_SHOP_SUBMENU_ITEMS_1.",
22494
23401
  "struct window_params",
22495
23402
  )
22496
23403
 
@@ -22499,7 +23406,7 @@ class JpOverlay21Data:
22499
23406
  [0x238E0F8],
22500
23407
  None,
22501
23408
  "SWAP_SHOP_WINDOW_PARAMS_7",
22502
- "Note: unverified, ported from Irdkwia's notes",
23409
+ "Used alongside both SWAP_SHOP_MENU_ITEMS_CONFIRM and SWAP_SHOP_SUBMENU_ITEMS_2.",
22503
23410
  "struct window_params",
22504
23411
  )
22505
23412
 
@@ -22508,7 +23415,7 @@ class JpOverlay21Data:
22508
23415
  [0x238E108],
22509
23416
  None,
22510
23417
  "SWAP_SHOP_WINDOW_PARAMS_8",
22511
- "Note: unverified, ported from Irdkwia's notes",
23418
+ "Used alone, seemingly for the exclusive item description window.",
22512
23419
  "struct window_params",
22513
23420
  )
22514
23421
 
@@ -22517,12 +23424,246 @@ class JpOverlay21Data:
22517
23424
  [0x238E118],
22518
23425
  None,
22519
23426
  "SWAP_SHOP_WINDOW_PARAMS_9",
22520
- "Note: unverified, ported from Irdkwia's notes",
23427
+ "Used alongside SWAP_SHOP_SUBMENU_ITEMS_3.",
22521
23428
  "struct window_params",
22522
23429
  )
22523
23430
 
23431
+ SWAP_SHOP_TALK_WELCOME_DEBUG_STRING = Symbol(
23432
+ [0x2A88],
23433
+ [0x238E128],
23434
+ None,
23435
+ "SWAP_SHOP_TALK_WELCOME_DEBUG_STRING",
23436
+ "MENU_SYNTHESIS_MODE_START:\n",
23437
+ "char[28]",
23438
+ )
23439
+
23440
+ SWAP_SHOP_MAIN_MENU_OPTIONS_DEBUG_STRING = Symbol(
23441
+ [0x2AA4],
23442
+ [0x238E144],
23443
+ None,
23444
+ "SWAP_SHOP_MAIN_MENU_OPTIONS_DEBUG_STRING",
23445
+ "MENU_SYNTHESIS_MODE_SELECTMENU:\n",
23446
+ "char[33]",
23447
+ )
23448
+
23449
+ SWAP_SHOP_TALK_CONTINUE_SWAP_DEBUG_STRING = Symbol(
23450
+ [0x2AC8],
23451
+ [0x238E168],
23452
+ None,
23453
+ "SWAP_SHOP_TALK_CONTINUE_SWAP_DEBUG_STRING",
23454
+ "MENU_SYNTHESIS_MODE_RESTART:\n",
23455
+ "char[30]",
23456
+ )
23457
+
23458
+ SWAP_SHOP_TALK_SUBINFO_DEBUG_STRING = Symbol(
23459
+ [0x2AE8],
23460
+ [0x238E188],
23461
+ None,
23462
+ "SWAP_SHOP_TALK_SUBINFO_DEBUG_STRING",
23463
+ "MENU_SYNTHESIS_MODE_EXPLANATION:\n",
23464
+ "char[34]",
23465
+ )
23466
+
23467
+ SWAP_SHOP_TALK_COME_AGAIN_DEBUG_STRING = Symbol(
23468
+ [0x2B0C],
23469
+ [0x238E1AC],
23470
+ None,
23471
+ "SWAP_SHOP_TALK_COME_AGAIN_DEBUG_STRING",
23472
+ "MENU_SYNTHESIS_MODE_THANKS:\n",
23473
+ "char[29]",
23474
+ )
23475
+
23476
+ SWAP_SHOP_TALK_LACKING_SWAP_ITEMS_DEBUG_STRING = Symbol(
23477
+ [0x2B2C],
23478
+ [0x238E1CC],
23479
+ None,
23480
+ "SWAP_SHOP_TALK_LACKING_SWAP_ITEMS_DEBUG_STRING",
23481
+ "MENU_SYNTHESIS_MODE_ITEM_NON:\n",
23482
+ "char[31]",
23483
+ )
23484
+
23485
+ SWAP_SHOP_TALK_SWAP_BROKE_DEBUG_STRING = Symbol(
23486
+ [0x2B4C],
23487
+ [0x238E1EC],
23488
+ None,
23489
+ "SWAP_SHOP_TALK_SWAP_BROKE_DEBUG_STRING",
23490
+ "MENU_SYNTHESIS_MODE_GOLD_NON\n",
23491
+ "char[30]",
23492
+ )
23493
+
23494
+ SWAP_SHOP_TALK_SWAP_POOR_DEBUG_STRING = Symbol(
23495
+ [0x2B6C],
23496
+ [0x238E20C],
23497
+ None,
23498
+ "SWAP_SHOP_TALK_SWAP_POOR_DEBUG_STRING",
23499
+ "MENU_SYNTHESIS_GOLD",
23500
+ "char[19]",
23501
+ )
23502
+
23503
+ SWAP_SHOP_UNK_8_DEBUG_STRING = Symbol(
23504
+ [0x2B90],
23505
+ [0x238E230],
23506
+ None,
23507
+ "SWAP_SHOP_UNK_8_DEBUG_STRING",
23508
+ "MENU_SYNTHESIS_MODE_SELECT_FULL:\n",
23509
+ "char[34]",
23510
+ )
23511
+
23512
+ SWAP_SHOP_CLOSE_SHOP_DEBUG_STRING = Symbol(
23513
+ [0x2BB4],
23514
+ [0x238E254],
23515
+ None,
23516
+ "SWAP_SHOP_CLOSE_SHOP_DEBUG_STRING",
23517
+ "MENU_SYNTHESIS_MODE_QUIT\n",
23518
+ "char[26]",
23519
+ )
23520
+
23521
+ SWAP_SHOP_TALK_WHAT_ITEMS_DEBUG_STRING = Symbol(
23522
+ [0x2BD0],
23523
+ [0x238E270],
23524
+ None,
23525
+ "SWAP_SHOP_TALK_WHAT_ITEMS_DEBUG_STRING",
23526
+ "MENU_SYNTHESIS_MODE_SELECT_START:\n",
23527
+ "char[35]",
23528
+ )
23529
+
23530
+ SWAP_SHOP_TALK_VALUABLE_SWAP_DEBUG_STRING = Symbol(
23531
+ [0x2BF4],
23532
+ [0x238E294],
23533
+ None,
23534
+ "SWAP_SHOP_TALK_VALUABLE_SWAP_DEBUG_STRING",
23535
+ "MENU_SYNTHESIS_MODE__RESTART:\n",
23536
+ "char[31]",
23537
+ )
23538
+
23539
+ SWAP_SHOP_INIT_SWAP_ITEMS_MENU_DEBUG_STRING = Symbol(
23540
+ [0x2C14],
23541
+ [0x238E2B4],
23542
+ None,
23543
+ "SWAP_SHOP_INIT_SWAP_ITEMS_MENU_DEBUG_STRING",
23544
+ "MENU_SYNTHESIS_MODE_SELECT_INIT:\n",
23545
+ "char[34]",
23546
+ )
23547
+
23548
+ SWAP_SHOP_SWAP_ITEMS_MENU_DEBUG_STRING = Symbol(
23549
+ [0x2C38],
23550
+ [0x238E2D8],
23551
+ None,
23552
+ "SWAP_SHOP_SWAP_ITEMS_MENU_DEBUG_STRING",
23553
+ "MENU_SYNTHESIS_MODE_SELECT_SELECT:\n",
23554
+ "char[36]",
23555
+ )
23556
+
23557
+ SWAP_SHOP_RETURN_SWAP_ITEMS_MENU_DEBUG_STRING = Symbol(
23558
+ [0x2C5C],
23559
+ [0x238E2FC],
23560
+ None,
23561
+ "SWAP_SHOP_RETURN_SWAP_ITEMS_MENU_DEBUG_STRING",
23562
+ "MENU_SYNTHESIS_MODE_SELECT_RESELECT:\n",
23563
+ "char[38]",
23564
+ )
23565
+
23566
+ SWAP_SHOP_SELECT_SWAP_ITEM_OPTIONS_DEBUG_STRING = Symbol(
23567
+ [0x2C84],
23568
+ [0x238E324],
23569
+ None,
23570
+ "SWAP_SHOP_SELECT_SWAP_ITEM_OPTIONS_DEBUG_STRING",
23571
+ "\tMENU_SYNTHESIS_MODE_SELECT_SUB_MENU:\n",
23572
+ "char[40]",
23573
+ )
23574
+
23575
+ SWAP_SHOP_SWAP_ITEM_GET_INFO_DEBUG_STRING = Symbol(
23576
+ [0x2CAC],
23577
+ [0x238E34C],
23578
+ None,
23579
+ "SWAP_SHOP_SWAP_ITEM_GET_INFO_DEBUG_STRING",
23580
+ "MENU_SYNTHESIS_MODE_SELECT_EXPLA\n",
23581
+ "char[34]",
23582
+ )
23583
+
23584
+ SWAP_SHOP_ITEM_ZERO_STRING = Symbol(
23585
+ [0x2CD0], [0x238E370], None, "SWAP_SHOP_ITEM_ZERO_STRING", "[item:0]", "char[8]"
23586
+ )
23587
+
23588
+ SWAP_SHOP_TALK_CONFIRM_SWAP_DEBUG_STRING = Symbol(
23589
+ [0x2CDC],
23590
+ [0x238E37C],
23591
+ None,
23592
+ "SWAP_SHOP_TALK_CONFIRM_SWAP_DEBUG_STRING",
23593
+ "MENU_SYNTHESIS_MODE_SELECT_CONFIRM_1:\n",
23594
+ "char[39]",
23595
+ )
23596
+
23597
+ SWAP_SHOP_CONFIRM_CHOICE_DEBUG_STRING = Symbol(
23598
+ [0x2D04],
23599
+ [0x238E3A4],
23600
+ None,
23601
+ "SWAP_SHOP_CONFIRM_CHOICE_DEBUG_STRING",
23602
+ "_SELL_CONFIRM NEW_1\n",
23603
+ "char[21]",
23604
+ )
23605
+
23606
+ SWAP_SHOP_INIT_SCRIPT_ACTION_1_DEBUG_STRING = Symbol(
23607
+ [0x2D1C],
23608
+ [0x238E3BC],
23609
+ None,
23610
+ "SWAP_SHOP_INIT_SCRIPT_ACTION_1_DEBUG_STRING",
23611
+ "MENU_SYNTHESIS_MODE_SELECT_THANKS_ACTION:\n",
23612
+ "char[43]",
23613
+ )
23614
+
23615
+ SWAP_SHOP_INIT_SCRIPT_ACTION_2_DEBUG_STRING = Symbol(
23616
+ [0x2D48],
23617
+ [0x238E3E8],
23618
+ None,
23619
+ "SWAP_SHOP_INIT_SCRIPT_ACTION_2_DEBUG_STRING",
23620
+ "MENU_SYNTHESIS_MODE_SELECT_THANKS_ACTION2:\n",
23621
+ "char[44]",
23622
+ )
23623
+
23624
+ SWAP_SHOP_INIT_SCRIPT_ACTION_3_DEBUG_STRING = Symbol(
23625
+ [0x2D74],
23626
+ [0x238E414],
23627
+ None,
23628
+ "SWAP_SHOP_INIT_SCRIPT_ACTION_3_DEBUG_STRING",
23629
+ "MENU_SYNTHESIS_MODE_SELECT_THANKS_ACTION3:\n",
23630
+ "char[44]",
23631
+ )
23632
+
23633
+ SWAP_SHOP_TEXT_PUT_IN_CAULDRON_DEBUG_STRING = Symbol(
23634
+ [0x2DA0],
23635
+ [0x238E440],
23636
+ None,
23637
+ "SWAP_SHOP_TEXT_PUT_IN_CAULDRON_DEBUG_STRING",
23638
+ "MENU_SYNTHESIS_MODE_SELECT_THANKS_1:\n",
23639
+ "char[38]",
23640
+ )
23641
+
23642
+ SWAP_SHOP_DO_SWAP_THEN_TALK_DEBUG_STRING = Symbol(
23643
+ [0x2DC8],
23644
+ [0x238E468],
23645
+ None,
23646
+ "SWAP_SHOP_DO_SWAP_THEN_TALK_DEBUG_STRING",
23647
+ "MENU_SYNTHESIS_MODE_SELECT_THANKS:\n",
23648
+ "char[36]",
23649
+ )
23650
+
22524
23651
  OVERLAY21_JP_STRING = Symbol(
22525
- [0x2DEC], [0x238E48C], None, "OVERLAY21_JP_STRING", "合成:", ""
23652
+ [0x2DEC],
23653
+ [0x238E48C],
23654
+ None,
23655
+ "OVERLAY21_JP_STRING",
23656
+ "合成:(synthesis in Japanese)",
23657
+ "wchar_t[3]",
23658
+ )
23659
+
23660
+ SWAP_SHOP_GOLD_STRING = Symbol(
23661
+ [0x2DF4],
23662
+ [0x238E494],
23663
+ None,
23664
+ "SWAP_SHOP_GOLD_STRING",
23665
+ "[CS:V][gold:0][CR]",
23666
+ "char[18]",
22526
23667
  )
22527
23668
 
22528
23669
  OVERLAY21_RESERVED_SPACE = Symbol(
@@ -22531,16 +23672,16 @@ class JpOverlay21Data:
22531
23672
  None,
22532
23673
  "OVERLAY21_RESERVED_SPACE",
22533
23674
  "Note: unverified, ported from Irdkwia's notes",
22534
- "",
23675
+ "undefined[8]",
22535
23676
  )
22536
23677
 
22537
- OVERLAY21_UNKNOWN_POINTER__NA_238CF40 = Symbol(
23678
+ SWAP_SHOP_MENU_DATA_PTR = Symbol(
22538
23679
  [0x2E20],
22539
23680
  [0x238E4C0],
22540
23681
  None,
22541
- "OVERLAY21_UNKNOWN_POINTER__NA_238CF40",
22542
- "Note: unverified, ported from Irdkwia's notes",
22543
- "",
23682
+ "SWAP_SHOP_MENU_DATA_PTR",
23683
+ "Pointer to the swap_shop_menu_data that governs the operations of most overlay_21 functions.",
23684
+ "struct swap_shop_menu_data*",
22544
23685
  )
22545
23686
 
22546
23687
  OVERLAY21_UNKNOWN_POINTER__NA_238CF44 = Symbol(
@@ -22549,7 +23690,7 @@ class JpOverlay21Data:
22549
23690
  None,
22550
23691
  "OVERLAY21_UNKNOWN_POINTER__NA_238CF44",
22551
23692
  "Note: unverified, ported from Irdkwia's notes",
22552
- "",
23693
+ "undefined*",
22553
23694
  )
22554
23695
 
22555
23696
 
@@ -23696,6 +24837,15 @@ class JpOverlay29Functions:
23696
24837
  None,
23697
24838
  )
23698
24839
 
24840
+ FloorSecondaryTerrainIsChasm = Symbol(
24841
+ [0x4130],
24842
+ [0x22E1A10],
24843
+ None,
24844
+ "FloorSecondaryTerrainIsChasm",
24845
+ "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",
24846
+ None,
24847
+ )
24848
+
23699
24849
  GetFloorType = Symbol(
23700
24850
  [0x4168],
23701
24851
  [0x22E1A48],
@@ -23777,6 +24927,24 @@ class JpOverlay29Functions:
23777
24927
  None,
23778
24928
  )
23779
24929
 
24930
+ SetDungeonEscapeFields = Symbol(
24931
+ [0x4798],
24932
+ [0x22E2078],
24933
+ None,
24934
+ "SetDungeonEscapeFields",
24935
+ "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",
24936
+ None,
24937
+ )
24938
+
24939
+ GetSuccessfulExitTracker = Symbol(
24940
+ [0x47B4],
24941
+ [0x22E2094],
24942
+ None,
24943
+ "GetSuccessfulExitTracker",
24944
+ "Returns the successful_exit_tracker field of the dungeon struct.\n\nreturn: successful_exit_tracker",
24945
+ None,
24946
+ )
24947
+
23780
24948
  CheckTouchscreenArea = Symbol(
23781
24949
  [0x4A68],
23782
24950
  [0x22E2348],
@@ -23944,7 +25112,7 @@ class JpOverlay29Functions:
23944
25112
  [0x22E416C],
23945
25113
  None,
23946
25114
  "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: ?",
25115
+ "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
25116
  None,
23949
25117
  )
23950
25118
 
@@ -24111,6 +25279,15 @@ class JpOverlay29Functions:
24111
25279
  None,
24112
25280
  )
24113
25281
 
25282
+ PlayParalysisEffect = Symbol(
25283
+ [0x7FD0],
25284
+ [0x22E58B0],
25285
+ None,
25286
+ "PlayParalysisEffect",
25287
+ "Displays the graphical effect on a monster that just became paralyzed.\n\nr0: entity pointer",
25288
+ None,
25289
+ )
25290
+
24114
25291
  PlayEffectAnimationEntityStandard = Symbol(
24115
25292
  [0x8078],
24116
25293
  [0x22E5958],
@@ -24120,6 +25297,24 @@ class JpOverlay29Functions:
24120
25297
  None,
24121
25298
  )
24122
25299
 
25300
+ PlaySpeedUpEffect = Symbol(
25301
+ [0x825C],
25302
+ [0x22E5B3C],
25303
+ None,
25304
+ "PlaySpeedUpEffect",
25305
+ "Displays the graphical effect on a monster that just raised movement speed.\n\nr0: entity pointer",
25306
+ None,
25307
+ )
25308
+
25309
+ PlaySpeedDownEffect = Symbol(
25310
+ [0x82AC],
25311
+ [0x22E5B8C],
25312
+ None,
25313
+ "PlaySpeedDownEffect",
25314
+ "Displays the graphical effect on a monster that just lowered movement speed.\n\nr0: entity pointer",
25315
+ None,
25316
+ )
25317
+
24123
25318
  ShowPpRestoreEffect = Symbol(
24124
25319
  [0x86F4],
24125
25320
  [0x22E5FD4],
@@ -24129,6 +25324,105 @@ class JpOverlay29Functions:
24129
25324
  None,
24130
25325
  )
24131
25326
 
25327
+ PlayOffensiveStatDownEffect = Symbol(
25328
+ [0x8AB8],
25329
+ [0x22E6398],
25330
+ None,
25331
+ "PlayOffensiveStatDownEffect",
25332
+ "Displays the graphical effect on a monster that just lowered an offensive stat.\n\nr0: entity pointer\nr1: stat index",
25333
+ None,
25334
+ )
25335
+
25336
+ PlayDefensiveStatDownEffect = Symbol(
25337
+ [0x8B5C],
25338
+ [0x22E643C],
25339
+ None,
25340
+ "PlayDefensiveStatDownEffect",
25341
+ "Displays the graphical effect on a monster that just lowered a defensive stat.\n\nr0: entity pointer\nr1: stat index",
25342
+ None,
25343
+ )
25344
+
25345
+ PlayOffensiveStatUpEffect = Symbol(
25346
+ [0x8C04],
25347
+ [0x22E64E4],
25348
+ None,
25349
+ "PlayOffensiveStatUpEffect",
25350
+ "Displays the graphical effect on a monster that just raised an offensive stat.\n\nr0: entity pointer\nr1: stat index",
25351
+ None,
25352
+ )
25353
+
25354
+ PlayDefensiveStatUpEffect = Symbol(
25355
+ [0x8CAC],
25356
+ [0x22E658C],
25357
+ None,
25358
+ "PlayDefensiveStatUpEffect",
25359
+ "Displays the graphical effect on a monster that just raised a defensive stat.\n\nr0: entity pointer\nr1: stat index",
25360
+ None,
25361
+ )
25362
+
25363
+ PlayOffensiveStatMultiplierUpEffect = Symbol(
25364
+ [0x8D50],
25365
+ [0x22E6630],
25366
+ None,
25367
+ "PlayOffensiveStatMultiplierUpEffect",
25368
+ "Displays the graphical effect on a monster that just raised an offensive stat multiplier.\n\nr0: entity pointer\nr1: stat index",
25369
+ None,
25370
+ )
25371
+
25372
+ PlayOffensiveStatMultiplierDownEffect = Symbol(
25373
+ [0x8DF8],
25374
+ [0x22E66D8],
25375
+ None,
25376
+ "PlayOffensiveStatMultiplierDownEffect",
25377
+ "Displays the graphical effect on a monster that just lowered an offensive stat multiplier.\n\nr0: entity pointer\nr1: stat index",
25378
+ None,
25379
+ )
25380
+
25381
+ PlayDefensiveStatMultiplierUpEffect = Symbol(
25382
+ [0x8E9C],
25383
+ [0x22E677C],
25384
+ None,
25385
+ "PlayDefensiveStatMultiplierUpEffect",
25386
+ "Displays the graphical effect on a monster that just raised a defensive stat multiplier.\n\nr0: entity pointer\nr1: stat index",
25387
+ None,
25388
+ )
25389
+
25390
+ PlayDefensiveStatMultiplierDownEffect = Symbol(
25391
+ [0x8F40],
25392
+ [0x22E6820],
25393
+ None,
25394
+ "PlayDefensiveStatMultiplierDownEffect",
25395
+ "Displays the graphical effect on a monster that just lowered a defensive stat multiplier.\n\nr0: entity pointer\nr1: stat index",
25396
+ None,
25397
+ )
25398
+
25399
+ PlayHitChanceUpEffect = Symbol(
25400
+ [0x8FE8],
25401
+ [0x22E68C8],
25402
+ None,
25403
+ "PlayHitChanceUpEffect",
25404
+ "Displays the graphical effect on a monster that just raised a hit chance stat.\n\nr0: entity pointer\nr1: stat index",
25405
+ None,
25406
+ )
25407
+
25408
+ PlayHitChanceDownEffect = Symbol(
25409
+ [0x9088],
25410
+ [0x22E6968],
25411
+ None,
25412
+ "PlayHitChanceDownEffect",
25413
+ "Displays the graphical effect on a monster that just lowered a hit chance stat.\n\nr0: entity pointer\nr1: stat index",
25414
+ None,
25415
+ )
25416
+
25417
+ PlaySeByIdIfShouldDisplayEntity = Symbol(
25418
+ [0x9430],
25419
+ [0x22E6D10],
25420
+ None,
25421
+ "PlaySeByIdIfShouldDisplayEntity",
25422
+ "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",
25423
+ None,
25424
+ )
25425
+
24132
25426
  ShouldDisplayEntityAdvanced = Symbol(
24133
25427
  [0x9C60],
24134
25428
  [0x22E7540],
@@ -24174,6 +25468,15 @@ class JpOverlay29Functions:
24174
25468
  None,
24175
25469
  )
24176
25470
 
25471
+ GetRandomTrapId = Symbol(
25472
+ [0xB818],
25473
+ [0x22E90F8],
25474
+ None,
25475
+ "GetRandomTrapId",
25476
+ "Gets the id of the trap to be used as the effect of a Random Trap.\n\nreturn: trap id",
25477
+ None,
25478
+ )
25479
+
24177
25480
  GetItemIdToSpawn = Symbol(
24178
25481
  [0xB850],
24179
25482
  [0x22E9130],
@@ -24336,6 +25639,15 @@ class JpOverlay29Functions:
24336
25639
  None,
24337
25640
  )
24338
25641
 
25642
+ IsPositionWithinTwoTiles = Symbol(
25643
+ [0xD0E4],
25644
+ [0x22EA9C4],
25645
+ None,
25646
+ "IsPositionWithinTwoTiles",
25647
+ "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.",
25648
+ None,
25649
+ )
25650
+
24339
25651
  GetLeader = Symbol(
24340
25652
  [0xD308],
24341
25653
  [0x22EABE8],
@@ -24543,6 +25855,15 @@ class JpOverlay29Functions:
24543
25855
  None,
24544
25856
  )
24545
25857
 
25858
+ PlaySeByIdIfNotSilence = Symbol(
25859
+ [0xEA54],
25860
+ [0x22EC334],
25861
+ None,
25862
+ "PlaySeByIdIfNotSilence",
25863
+ "Plays the specified sound effect if it is not the designated silence value (0x3F00).\n\nr0: Sound effect ID",
25864
+ None,
25865
+ )
25866
+
24546
25867
  MusicTableIdxToMusicId = Symbol(
24547
25868
  [0xEA88],
24548
25869
  [0x22EC368],
@@ -24570,6 +25891,15 @@ class JpOverlay29Functions:
24570
25891
  None,
24571
25892
  )
24572
25893
 
25894
+ ResetLeaderActionFields = Symbol(
25895
+ [0xF120],
25896
+ [0x22ECA00],
25897
+ None,
25898
+ "ResetLeaderActionFields",
25899
+ "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",
25900
+ None,
25901
+ )
25902
+
24573
25903
  SetLeaderActionFields = Symbol(
24574
25904
  [0xF150],
24575
25905
  [0x22ECA30],
@@ -24786,6 +26116,15 @@ class JpOverlay29Functions:
24786
26116
  None,
24787
26117
  )
24788
26118
 
26119
+ SpawnTraps = Symbol(
26120
+ [0x1160C],
26121
+ [0x22EEEEC],
26122
+ None,
26123
+ "SpawnTraps",
26124
+ "Spawns a new dungeon floor's traps.\n\nNo params.",
26125
+ None,
26126
+ )
26127
+
24789
26128
  SpawnEnemyTrapAtPos = Symbol(
24790
26129
  [0x116F4],
24791
26130
  [0x22EEFD4],
@@ -24804,6 +26143,15 @@ class JpOverlay29Functions:
24804
26143
  None,
24805
26144
  )
24806
26145
 
26146
+ CanLayTrap = Symbol(
26147
+ [0x119B4],
26148
+ [0x22EF294],
26149
+ None,
26150
+ "CanLayTrap",
26151
+ "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.",
26152
+ None,
26153
+ )
26154
+
24807
26155
  TrySpawnTrap = Symbol(
24808
26156
  [0x11A40],
24809
26157
  [0x22EF320],
@@ -24831,6 +26179,33 @@ class JpOverlay29Functions:
24831
26179
  None,
24832
26180
  )
24833
26181
 
26182
+ TryRevealAttackedTrap = Symbol(
26183
+ [0x11C60],
26184
+ [0x22EF540],
26185
+ None,
26186
+ "TryRevealAttackedTrap",
26187
+ "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",
26188
+ None,
26189
+ )
26190
+
26191
+ SubstitutePlaceholderTrapTags2 = Symbol(
26192
+ [0x11CE0],
26193
+ [0x22EF5C0],
26194
+ None,
26195
+ "SubstitutePlaceholderTrapTags2",
26196
+ "Used in TryTriggerTrap. Has the same functionality as SubstitutePlaceholderTrapTags.\n\nr1: tag id\nr2: trap id",
26197
+ None,
26198
+ )
26199
+
26200
+ SubstitutePlaceholderTrapTags = Symbol(
26201
+ [0x11D00],
26202
+ [0x22EF5E0],
26203
+ None,
26204
+ "SubstitutePlaceholderTrapTags",
26205
+ "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",
26206
+ None,
26207
+ )
26208
+
24834
26209
  TryTriggerTrap = Symbol(
24835
26210
  [0x11D24],
24836
26211
  [0x22EF604],
@@ -24957,6 +26332,15 @@ class JpOverlay29Functions:
24957
26332
  None,
24958
26333
  )
24959
26334
 
26335
+ SpawnMonstersAroundPos = Symbol(
26336
+ [0x131D8],
26337
+ [0x22F0AB8],
26338
+ None,
26339
+ "SpawnMonstersAroundPos",
26340
+ "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",
26341
+ None,
26342
+ )
26343
+
24960
26344
  RevealTrapsNearby = Symbol(
24961
26345
  [0x132FC],
24962
26346
  [0x22F0BDC],
@@ -24993,6 +26377,15 @@ class JpOverlay29Functions:
24993
26377
  None,
24994
26378
  )
24995
26379
 
26380
+ IsBehaviorLoneOutlaw = Symbol(
26381
+ [0x1380C],
26382
+ [0x22F10EC],
26383
+ None,
26384
+ "IsBehaviorLoneOutlaw",
26385
+ "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",
26386
+ None,
26387
+ )
26388
+
24996
26389
  IsSecretBazaarNpcBehavior = Symbol(
24997
26390
  [0x13828],
24998
26391
  [0x22F1108],
@@ -25011,6 +26404,15 @@ class JpOverlay29Functions:
25011
26404
  None,
25012
26405
  )
25013
26406
 
26407
+ GetLeaderActionId = Symbol(
26408
+ [0x148BC],
26409
+ [0x22F219C],
26410
+ None,
26411
+ "GetLeaderActionId",
26412
+ "Gets the current action id of the leader monster's action data.\n\nreturn: action_id",
26413
+ None,
26414
+ )
26415
+
25014
26416
  GetEntityTouchscreenArea = Symbol(
25015
26417
  [0x148CC],
25016
26418
  [0x22F21AC],
@@ -25065,6 +26467,15 @@ class JpOverlay29Functions:
25065
26467
  None,
25066
26468
  )
25067
26469
 
26470
+ HandleHeldItemSwaps = Symbol(
26471
+ [0x182E4],
26472
+ [0x22F5BC4],
26473
+ None,
26474
+ "HandleHeldItemSwaps",
26475
+ "Handles giving/taking held items to/from a party member (and likely other things).\n\nr0: entity pointer",
26476
+ None,
26477
+ )
26478
+
25068
26479
  UseSingleUseItemWrapper = Symbol(
25069
26480
  [0x18FE4],
25070
26481
  [0x22F68C4],
@@ -25263,12 +26674,12 @@ class JpOverlay29Functions:
25263
26674
  None,
25264
26675
  )
25265
26676
 
25266
- CreateMonsterSummaryFromMonster = Symbol(
26677
+ CreateMonsterSummaryFromEntity = Symbol(
25267
26678
  [0x1C6B0],
25268
26679
  [0x22F9F90],
25269
26680
  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",
26681
+ "CreateMonsterSummaryFromEntity",
26682
+ "Creates a snapshot of the condition of a monster struct in a monster_summary struct.\n\nr0: [output] monster_summary\nr1: monster_entity",
25272
26683
  None,
25273
26684
  )
25274
26685
 
@@ -25597,6 +27008,33 @@ class JpOverlay29Functions:
25597
27008
  None,
25598
27009
  )
25599
27010
 
27011
+ IsHero = Symbol(
27012
+ [0x1F2D8],
27013
+ [0x22FCBB8],
27014
+ None,
27015
+ "IsHero",
27016
+ "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",
27017
+ None,
27018
+ )
27019
+
27020
+ IsSpecialStoryAllyOrClient = Symbol(
27021
+ [0x1F664],
27022
+ [0x22FCF44],
27023
+ None,
27024
+ "IsSpecialStoryAllyOrClient",
27025
+ "Same as IsSpecialStoryAlly, except taking an entity pointer and also checking if it is a client.\n\nr0: entity pointer\nreturn: bool",
27026
+ None,
27027
+ )
27028
+
27029
+ ResetTriggerFlags = Symbol(
27030
+ [0x1F6A8],
27031
+ [0x22FCF88],
27032
+ None,
27033
+ "ResetTriggerFlags",
27034
+ "Resets a monster's contact_ability_trigger_bitflags and exclusive_item_trigger_bitflags fields to 0.\n\nr0: entity pointer",
27035
+ None,
27036
+ )
27037
+
25600
27038
  IsSpecialStoryAlly = Symbol(
25601
27039
  [0x1F6C4],
25602
27040
  [0x22FCFA4],
@@ -25615,6 +27053,33 @@ class JpOverlay29Functions:
25615
27053
  None,
25616
27054
  )
25617
27055
 
27056
+ IsMonsterLoneOutlaw = Symbol(
27057
+ [0x1F8F0],
27058
+ [0x22FD1D0],
27059
+ None,
27060
+ "IsMonsterLoneOutlaw",
27061
+ "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",
27062
+ None,
27063
+ )
27064
+
27065
+ IsSecretBazaarNpc = Symbol(
27066
+ [0x1F900],
27067
+ [0x22FD1E0],
27068
+ None,
27069
+ "IsSecretBazaarNpc",
27070
+ "Checks if an entity is a Secret Bazaar NPCs.\n\nr0: entity pointer\nreturn: bool",
27071
+ None,
27072
+ )
27073
+
27074
+ IsTeamMemberOnFirstTurnInFixedRoom = Symbol(
27075
+ [0x1F914],
27076
+ [0x22FD1F4],
27077
+ None,
27078
+ "IsTeamMemberOnFirstTurnInFixedRoom",
27079
+ "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",
27080
+ None,
27081
+ )
27082
+
25618
27083
  InitOtherMonsterData = Symbol(
25619
27084
  [0x1F968],
25620
27085
  [0x22FD248],
@@ -25813,6 +27278,15 @@ class JpOverlay29Functions:
25813
27278
  None,
25814
27279
  )
25815
27280
 
27281
+ CanMoveThroughWalls = Symbol(
27282
+ [0x233F8],
27283
+ [0x2300CD8],
27284
+ None,
27285
+ "CanMoveThroughWalls",
27286
+ "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.",
27287
+ None,
27288
+ )
27289
+
25816
27290
  CannotStandOnTile = Symbol(
25817
27291
  [0x237CC],
25818
27292
  [0x23010AC],
@@ -25854,7 +27328,7 @@ class JpOverlay29Functions:
25854
27328
  None,
25855
27329
  None,
25856
27330
  "GetMonsterDisplayNameType",
25857
- "Determines how the name of a monster should be displayed.\n\nr0: Entity pointer\nreturn: Display name type",
27331
+ "Determines how the name of a monster should be displayed.\n\nr0: Monster pointer\nreturn: Display name type",
25858
27332
  None,
25859
27333
  )
25860
27334
 
@@ -25876,6 +27350,15 @@ class JpOverlay29Functions:
25876
27350
  None,
25877
27351
  )
25878
27352
 
27353
+ SetPreprocessorArgsStringToName = Symbol(
27354
+ [0x23F34],
27355
+ [0x2301814],
27356
+ None,
27357
+ "SetPreprocessorArgsStringToName",
27358
+ "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.",
27359
+ None,
27360
+ )
27361
+
25879
27362
  IsMonsterDrowsy = Symbol(
25880
27363
  [0x23FB4],
25881
27364
  [0x2301894],
@@ -25984,9 +27467,18 @@ class JpOverlay29Functions:
25984
27467
  None,
25985
27468
  )
25986
27469
 
27470
+ MonsterHasQuarterHp = Symbol(
27471
+ [0x242E0],
27472
+ [0x2301BC0],
27473
+ None,
27474
+ "MonsterHasQuarterHp",
27475
+ "Checks if a monster has a quarter or less HP remaining.\n\nr0: entity pointer\nreturn: bool",
27476
+ None,
27477
+ )
27478
+
25987
27479
  CheckVariousStatuses2 = Symbol(
25988
- [0x2431C],
25989
- [0x2301BFC],
27480
+ [0x2431C, 0x243E0],
27481
+ [0x2301BFC, 0x2301CC0],
25990
27482
  None,
25991
27483
  "CheckVariousStatuses2",
25992
27484
  "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 +27486,8 @@ class JpOverlay29Functions:
25994
27486
  )
25995
27487
 
25996
27488
  CheckVariousConditions = Symbol(
25997
- [0x24644],
25998
- [0x2301F24],
27489
+ [0x24644, 0x246FC],
27490
+ [0x2301F24, 0x2301FDC],
25999
27491
  None,
26000
27492
  "CheckVariousConditions",
26001
27493
  "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 +27495,8 @@ class JpOverlay29Functions:
26003
27495
  )
26004
27496
 
26005
27497
  CheckVariousStatuses = Symbol(
26006
- [0x247B4],
26007
- [0x2302094],
27498
+ [0x247B4, 0x24804],
27499
+ [0x2302094, 0x23020E4],
26008
27500
  None,
26009
27501
  "CheckVariousStatuses",
26010
27502
  "Returns 0 if none of these conditions holds for the given entity: asleep, frozen, petrified, biding.\n\nr0: Entity pointer\nreturn: bool",
@@ -26074,6 +27566,24 @@ class JpOverlay29Functions:
26074
27566
  None,
26075
27567
  )
26076
27568
 
27569
+ IsAtJunction = Symbol(
27570
+ [0x250D4],
27571
+ [0x23029B4],
27572
+ None,
27573
+ "IsAtJunction",
27574
+ "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.",
27575
+ None,
27576
+ )
27577
+
27578
+ ShouldAvoidFirstHit = Symbol(
27579
+ [0x25224],
27580
+ [0x2302B04],
27581
+ None,
27582
+ "ShouldAvoidFirstHit",
27583
+ "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.",
27584
+ None,
27585
+ )
27586
+
26077
27587
  ShouldMonsterRunAway = Symbol(
26078
27588
  [0x25248],
26079
27589
  [0x2302B28],
@@ -26110,6 +27620,15 @@ class JpOverlay29Functions:
26110
27620
  None,
26111
27621
  )
26112
27622
 
27623
+ GetTreatmentBetweenMonstersIgnoreStatus = Symbol(
27624
+ [0x2553C],
27625
+ [0x2302E1C],
27626
+ None,
27627
+ "GetTreatmentBetweenMonstersIgnoreStatus",
27628
+ "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",
27629
+ None,
27630
+ )
27631
+
26113
27632
  SafeguardIsActive = Symbol(
26114
27633
  [0x255CC],
26115
27634
  [0x2302EAC],
@@ -26254,6 +27773,15 @@ class JpOverlay29Functions:
26254
27773
  None,
26255
27774
  )
26256
27775
 
27776
+ CanSeeTeammate = Symbol(
27777
+ [0x25E70],
27778
+ [0x2303750],
27779
+ None,
27780
+ "CanSeeTeammate",
27781
+ "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.",
27782
+ None,
27783
+ )
27784
+
26257
27785
  GetMoveTypeForMonster = Symbol(
26258
27786
  [0x25EEC],
26259
27787
  [0x23037CC],
@@ -26344,6 +27872,15 @@ class JpOverlay29Functions:
26344
27872
  None,
26345
27873
  )
26346
27874
 
27875
+ DungeonTmLearnMove = Symbol(
27876
+ [0x27544],
27877
+ [0x2304E24],
27878
+ None,
27879
+ "DungeonTmLearnMove",
27880
+ "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",
27881
+ None,
27882
+ )
27883
+
26347
27884
  GetMonsterMoves = Symbol(
26348
27885
  [0x27788],
26349
27886
  [0x2305068],
@@ -26578,6 +28115,15 @@ class JpOverlay29Functions:
26578
28115
  None,
26579
28116
  )
26580
28117
 
28118
+ TryEndPetrifiedOrSleepStatus = Symbol(
28119
+ [0x2B82C],
28120
+ [0x230910C],
28121
+ None,
28122
+ "TryEndPetrifiedOrSleepStatus",
28123
+ "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.",
28124
+ None,
28125
+ )
28126
+
26581
28127
  EndFrozenStatus = Symbol(
26582
28128
  [0x2B8C8],
26583
28129
  [0x23091A8],
@@ -26623,6 +28169,15 @@ class JpOverlay29Functions:
26623
28169
  None,
26624
28170
  )
26625
28171
 
28172
+ GetLeaderIfVisible = Symbol(
28173
+ [0x2BF18],
28174
+ [0x23097F8],
28175
+ None,
28176
+ "GetLeaderIfVisible",
28177
+ "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.",
28178
+ None,
28179
+ )
28180
+
26626
28181
  RunMonsterAi = Symbol(
26627
28182
  [0x2BF94],
26628
28183
  [0x2309874],
@@ -26713,6 +28268,15 @@ class JpOverlay29Functions:
26713
28268
  None,
26714
28269
  )
26715
28270
 
28271
+ WeightWeakTypePicker = Symbol(
28272
+ [0x2F454],
28273
+ [0x230CD34],
28274
+ None,
28275
+ "WeightWeakTypePicker",
28276
+ "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.",
28277
+ None,
28278
+ )
28279
+
26716
28280
  CalcDamage = Symbol(
26717
28281
  [0x2F820],
26718
28282
  [0x230D100],
@@ -26920,6 +28484,15 @@ class JpOverlay29Functions:
26920
28484
  None,
26921
28485
  )
26922
28486
 
28487
+ FindDirectionOfAdjacentMonsterWithItem = Symbol(
28488
+ [0x3352C],
28489
+ [0x2310E0C],
28490
+ None,
28491
+ "FindDirectionOfAdjacentMonsterWithItem",
28492
+ "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.",
28493
+ None,
28494
+ )
28495
+
26923
28496
  TrySpawnEnemyItemDrop = Symbol(
26924
28497
  [0x33634],
26925
28498
  [0x2310F14],
@@ -27015,7 +28588,7 @@ class JpOverlay29Functions:
27015
28588
  [0x2313570],
27016
28589
  None,
27017
28590
  "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",
28591
+ "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
28592
  None,
27020
28593
  )
27021
28594
 
@@ -27267,7 +28840,7 @@ class JpOverlay29Functions:
27267
28840
  [0x2315F90],
27268
28841
  None,
27269
28842
  "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",
28843
+ "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
28844
  None,
27272
28845
  )
27273
28846
 
@@ -27411,7 +28984,7 @@ class JpOverlay29Functions:
27411
28984
  [0x2317048],
27412
28985
  None,
27413
28986
  "TryInflictSureShotStatus",
27414
- "Inflicts the Sure Shot status condition on a target monster if possible.\n\nr0: user entity pointer\nr1: target entity pointer",
28987
+ "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
28988
  None,
27416
28989
  )
27417
28990
 
@@ -27420,7 +28993,7 @@ class JpOverlay29Functions:
27420
28993
  [0x23170D8],
27421
28994
  None,
27422
28995
  "TryInflictWhifferStatus",
27423
- "Inflicts the Whiffer status condition on a target monster if possible.\n\nr0: user entity pointer\nr1: target entity pointer",
28996
+ "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
28997
  None,
27425
28998
  )
27426
28999
 
@@ -27447,7 +29020,7 @@ class JpOverlay29Functions:
27447
29020
  [0x23172FC],
27448
29021
  None,
27449
29022
  "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",
29023
+ "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
29024
  None,
27452
29025
  )
27453
29026
 
@@ -27474,7 +29047,7 @@ class JpOverlay29Functions:
27474
29047
  [0x2317880],
27475
29048
  None,
27476
29049
  "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",
29050
+ "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
29051
  None,
27479
29052
  )
27480
29053
 
@@ -27582,7 +29155,7 @@ class JpOverlay29Functions:
27582
29155
  [0x2318B9C],
27583
29156
  None,
27584
29157
  "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",
29158
+ "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
29159
  None,
27587
29160
  )
27588
29161
 
@@ -27820,6 +29393,15 @@ class JpOverlay29Functions:
27820
29393
  None,
27821
29394
  )
27822
29395
 
29396
+ SetReflectStatus = Symbol(
29397
+ [0x3C988],
29398
+ [0x231A268],
29399
+ None,
29400
+ "SetReflectStatus",
29401
+ "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",
29402
+ None,
29403
+ )
29404
+
27823
29405
  TryInflictSafeguardStatus = Symbol(
27824
29406
  [0x3CA60],
27825
29407
  [0x231A340],
@@ -28302,7 +29884,7 @@ class JpOverlay29Functions:
28302
29884
  [0x231FD9C],
28303
29885
  None,
28304
29886
  "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",
29887
+ "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
29888
  None,
28307
29889
  )
28308
29890
 
@@ -28324,6 +29906,15 @@ class JpOverlay29Functions:
28324
29906
  None,
28325
29907
  )
28326
29908
 
29909
+ InitMoveWrapper = Symbol(
29910
+ [0x425D0],
29911
+ [0x231FEB0],
29912
+ None,
29913
+ "InitMoveWrapper",
29914
+ "Wrapper for InitMove which takes a superfluous parameter.\n\nr0: unused\nr1: [output] pointer to move to initialize\nr2: move ID",
29915
+ None,
29916
+ )
29917
+
28327
29918
  MoveIsNotPhysical = Symbol(
28328
29919
  [0x425E4],
28329
29920
  [0x231FEC4],
@@ -28342,6 +29933,24 @@ class JpOverlay29Functions:
28342
29933
  None,
28343
29934
  )
28344
29935
 
29936
+ MakeFloorOneRoom = Symbol(
29937
+ [0x4260C],
29938
+ [0x231FEEC],
29939
+ None,
29940
+ "MakeFloorOneRoom",
29941
+ "Removes all walls to make the floor one room.\n\nr0: user entity pointer",
29942
+ None,
29943
+ )
29944
+
29945
+ TryHurl = Symbol(
29946
+ [0x429C8],
29947
+ [0x23202A8],
29948
+ None,
29949
+ "TryHurl",
29950
+ "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",
29951
+ None,
29952
+ )
29953
+
28345
29954
  TryDrought = Symbol(
28346
29955
  [0x43160],
28347
29956
  [0x2320A40],
@@ -28351,6 +29960,15 @@ class JpOverlay29Functions:
28351
29960
  None,
28352
29961
  )
28353
29962
 
29963
+ TryTrawl = Symbol(
29964
+ [0x432B0],
29965
+ [0x2320B90],
29966
+ None,
29967
+ "TryTrawl",
29968
+ "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",
29969
+ None,
29970
+ )
29971
+
28354
29972
  TryPounce = Symbol(
28355
29973
  [0x437EC],
28356
29974
  [0x23210CC],
@@ -28662,7 +30280,25 @@ class JpOverlay29Functions:
28662
30280
  [0x2334460],
28663
30281
  None,
28664
30282
  "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.",
30283
+ "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.",
30284
+ None,
30285
+ )
30286
+
30287
+ StatusCheckerCheckOnTarget = Symbol(
30288
+ [0x57ADC],
30289
+ [0x23353BC],
30290
+ None,
30291
+ "StatusCheckerCheckOnTarget",
30292
+ "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.",
30293
+ None,
30294
+ )
30295
+
30296
+ HasLastUsedMove = Symbol(
30297
+ [0x587B8],
30298
+ [0x2336098],
30299
+ None,
30300
+ "HasLastUsedMove",
30301
+ "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
30302
  None,
28667
30303
  )
28668
30304
 
@@ -28918,6 +30554,15 @@ class JpOverlay29Functions:
28918
30554
  None,
28919
30555
  )
28920
30556
 
30557
+ IsTileGround = Symbol(
30558
+ [0x5B910],
30559
+ [0x23391F0],
30560
+ None,
30561
+ "IsTileGround",
30562
+ "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.",
30563
+ None,
30564
+ )
30565
+
28921
30566
  IsWaterTileset = Symbol(
28922
30567
  [0x5B978],
28923
30568
  [0x2339258],
@@ -28945,6 +30590,24 @@ class JpOverlay29Functions:
28945
30590
  None,
28946
30591
  )
28947
30592
 
30593
+ FindAdjacentEnemy = Symbol(
30594
+ [0x5BD8C],
30595
+ [0x233966C],
30596
+ None,
30597
+ "FindAdjacentEnemy",
30598
+ "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.",
30599
+ None,
30600
+ )
30601
+
30602
+ IsAdjacentToEnemyIgnoreTreatment = Symbol(
30603
+ [0x5BE34],
30604
+ [0x2339714],
30605
+ None,
30606
+ "IsAdjacentToEnemyIgnoreTreatment",
30607
+ "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",
30608
+ None,
30609
+ )
30610
+
28948
30611
  ResetGravity = Symbol(
28949
30612
  [0x5BE50],
28950
30613
  [0x2339730],
@@ -28972,6 +30635,15 @@ class JpOverlay29Functions:
28972
30635
  None,
28973
30636
  )
28974
30637
 
30638
+ RevealAttackedTile = Symbol(
30639
+ [0x5BF14],
30640
+ [0x23397F4],
30641
+ None,
30642
+ "RevealAttackedTile",
30643
+ "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",
30644
+ None,
30645
+ )
30646
+
28975
30647
  ShouldBoostKecleonShopSpawnChance = Symbol(
28976
30648
  [0x5BFA4],
28977
30649
  [0x2339884],
@@ -29895,7 +31567,7 @@ class JpOverlay29Functions:
29895
31567
  [0x234550C],
29896
31568
  None,
29897
31569
  "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",
31570
+ "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
31571
  None,
29900
31572
  )
29901
31573
 
@@ -29962,6 +31634,24 @@ class JpOverlay29Functions:
29962
31634
  None,
29963
31635
  )
29964
31636
 
31637
+ PrepareItemForPrinting = Symbol(
31638
+ [0x68628, 0x68654],
31639
+ [0x2345F08, 0x2345F34],
31640
+ None,
31641
+ "PrepareItemForPrinting",
31642
+ "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",
31643
+ None,
31644
+ )
31645
+
31646
+ PrepareItemForPrinting2 = Symbol(
31647
+ [0x6868C],
31648
+ [0x2345F6C],
31649
+ None,
31650
+ "PrepareItemForPrinting2",
31651
+ "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",
31652
+ None,
31653
+ )
31654
+
29965
31655
  GenerateStandardItem = Symbol(
29966
31656
  [0x686B4],
29967
31657
  [0x2345F94],
@@ -30088,6 +31778,15 @@ class JpOverlay29Functions:
30088
31778
  None,
30089
31779
  )
30090
31780
 
31781
+ HandleCurvedProjectileThrow = Symbol(
31782
+ [0x6B674],
31783
+ [0x2348F54],
31784
+ None,
31785
+ "HandleCurvedProjectileThrow",
31786
+ "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",
31787
+ None,
31788
+ )
31789
+
30091
31790
  DoesProjectileHitTarget = Symbol(
30092
31791
  [0x6BAC8],
30093
31792
  [0x23493A8],
@@ -30124,6 +31823,15 @@ class JpOverlay29Functions:
30124
31823
  None,
30125
31824
  )
30126
31825
 
31826
+ IsItemUnkMissionItem2 = Symbol(
31827
+ [0x6C748],
31828
+ [0x234A028],
31829
+ None,
31830
+ "IsItemUnkMissionItem2",
31831
+ "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.",
31832
+ None,
31833
+ )
31834
+
30127
31835
  CheckActiveChallengeRequest = Symbol(
30128
31836
  [0x6CB94],
30129
31837
  [0x234A474],
@@ -30376,12 +32084,129 @@ class JpOverlay29Functions:
30376
32084
  None,
30377
32085
  )
30378
32086
 
30379
- LogMessageByIdWithPopupCheckParticipants = Symbol(
32087
+ InitAlertBoxInfo = Symbol(
32088
+ [0x6E934],
32089
+ [0x234C214],
32090
+ None,
32091
+ "InitAlertBoxInfo",
32092
+ "Initializes the heap-allocated alert_box_info struct in MESSAGE_LOG_INFO.\n\nNo params.",
32093
+ None,
32094
+ )
32095
+
32096
+ FreeAlertBoxInfo = Symbol(
32097
+ [0x6E960],
32098
+ [0x234C240],
32099
+ None,
32100
+ "FreeAlertBoxInfo",
32101
+ "Frees the heap-allocated alert_box_info struct in MESSAGE_LOG_INFO.\n\nNo params.",
32102
+ None,
32103
+ )
32104
+
32105
+ SetMessageLogGroupStartFlag = Symbol(
32106
+ [0x6E9B4],
32107
+ [0x234C294],
32108
+ None,
32109
+ "SetMessageLogGroupStartFlag",
32110
+ "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",
32111
+ None,
32112
+ )
32113
+
32114
+ GetMessageLogPreprocessorArgs = Symbol(
32115
+ [0x6E9C4],
32116
+ [0x234C2A4],
32117
+ None,
32118
+ "GetMessageLogPreprocessorArgs",
32119
+ "Gets a pointer to the global preprocessor_args struct used for the message log.\n\nreturn: preprocessor_args pointer",
32120
+ None,
32121
+ )
32122
+
32123
+ InitMessageLogPreprocessorArgs = Symbol(
32124
+ [0x6E9DC],
32125
+ [0x234C2BC],
32126
+ None,
32127
+ "InitMessageLogPreprocessorArgs",
32128
+ "Initializes the global preprocessor_args struct used for the message log.\n\nNo params.",
32129
+ None,
32130
+ )
32131
+
32132
+ SetMessageLogPreprocessorArgsFlagVal = Symbol(
32133
+ [0x6E9FC],
32134
+ [0x234C2DC],
32135
+ None,
32136
+ "SetMessageLogPreprocessorArgsFlagVal",
32137
+ "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",
32138
+ None,
32139
+ )
32140
+
32141
+ SetMessageLogPreprocessorArgsIdVal = Symbol(
32142
+ [0x6EA14],
32143
+ [0x234C2F4],
32144
+ None,
32145
+ "SetMessageLogPreprocessorArgsIdVal",
32146
+ "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",
32147
+ None,
32148
+ )
32149
+
32150
+ SetMessageLogPreprocessorArgsNumberVal = Symbol(
32151
+ [0x6EA2C],
32152
+ [0x234C30C],
32153
+ None,
32154
+ "SetMessageLogPreprocessorArgsNumberVal",
32155
+ "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",
32156
+ None,
32157
+ )
32158
+
32159
+ SetMessageLogPreprocessorArgsString = Symbol(
32160
+ [0x6EA44],
32161
+ [0x234C324],
32162
+ None,
32163
+ "SetMessageLogPreprocessorArgsString",
32164
+ "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",
32165
+ None,
32166
+ )
32167
+
32168
+ SetMessageLogPreprocessorArgsStringToName = Symbol(
32169
+ [0x6EA5C],
32170
+ [0x234C33C],
32171
+ None,
32172
+ "SetMessageLogPreprocessorArgsStringToName",
32173
+ "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",
32174
+ None,
32175
+ )
32176
+
32177
+ SetMessageLogPreprocessorArgsSpeakerId = Symbol(
32178
+ [0x6EA94],
32179
+ [0x234C374],
32180
+ None,
32181
+ "SetMessageLogPreprocessorArgsSpeakerId",
32182
+ "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",
32183
+ None,
32184
+ )
32185
+
32186
+ SetMessageLogPreprocessorArgsSpeakerId0x30000 = Symbol(
32187
+ [0x6EAA8],
32188
+ [0x234C388],
32189
+ None,
32190
+ "SetMessageLogPreprocessorArgsSpeakerId0x30000",
32191
+ "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",
32192
+ None,
32193
+ )
32194
+
32195
+ LogMessageByIdWithPopupAndAbility = Symbol(
30380
32196
  [0x6EBE0],
30381
32197
  [0x234C4C0],
30382
32198
  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?",
32199
+ "LogMessageByIdWithPopupAndAbility",
32200
+ "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)",
32201
+ None,
32202
+ )
32203
+
32204
+ WaitUntilAlertBoxTextIsLoadedWrapper = Symbol(
32205
+ [0x6EC24],
32206
+ [0x234C504],
32207
+ None,
32208
+ "WaitUntilAlertBoxTextIsLoadedWrapper",
32209
+ "Calls WaitUntilAlertBoxTextIsLoaded with r0 = 0x50.\n\nNo params.",
30385
32210
  None,
30386
32211
  )
30387
32212
 
@@ -30493,6 +32318,24 @@ class JpOverlay29Functions:
30493
32318
  None,
30494
32319
  )
30495
32320
 
32321
+ AlertBoxIsScrolling = Symbol(
32322
+ [0x6F17C],
32323
+ [0x234CA5C],
32324
+ None,
32325
+ "AlertBoxIsScrolling",
32326
+ "Returns true if the alert box is currently scrolling (i.e. a message is being loaded).\n\nreturn: bool",
32327
+ None,
32328
+ )
32329
+
32330
+ WaitUntilAlertBoxTextIsLoaded = Symbol(
32331
+ [0x6F39C],
32332
+ [0x234CC7C],
32333
+ None,
32334
+ "WaitUntilAlertBoxTextIsLoaded",
32335
+ "Calls AdvanceFrame in a loop until the dungeon alert box has finished scrolling.\n\nr0: value to pass to AdvanceFrame (unused by the function)",
32336
+ None,
32337
+ )
32338
+
30496
32339
  InitPortraitDungeon = Symbol(
30497
32340
  [0x6F444],
30498
32341
  [0x234CD24],
@@ -30646,6 +32489,15 @@ class JpOverlay29Functions:
30646
32489
  None,
30647
32490
  )
30648
32491
 
32492
+ StairsMenuAfterStep = Symbol(
32493
+ [0x722A0],
32494
+ [0x234FB80],
32495
+ None,
32496
+ "StairsMenuAfterStep",
32497
+ "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",
32498
+ None,
32499
+ )
32500
+
30649
32501
  DungeonModeSetupAndShowNameKeyboard = Symbol(
30650
32502
  [0x729AC],
30651
32503
  [0x235028C],
@@ -30673,10 +32525,24 @@ class JpOverlay29Functions:
30673
32525
  None,
30674
32526
  )
30675
32527
 
32528
+ CreateMonsterSummaryFromMonster = _Deprecated(
32529
+ "CreateMonsterSummaryFromMonster", CreateMonsterSummaryFromEntity
32530
+ )
32531
+
30676
32532
  ShouldMonsterRunAwayVariation = _Deprecated(
30677
32533
  "ShouldMonsterRunAwayVariation", ShouldMonsterRunAwayAndShowEffect
30678
32534
  )
30679
32535
 
32536
+ GetFlashFireStatus = _Deprecated("GetFlashFireStatus", FlashFireShouldActivate)
32537
+
32538
+ SetPreprocessorArgsIdVal = _Deprecated(
32539
+ "SetPreprocessorArgsIdVal", SetMessageLogPreprocessorArgsIdVal
32540
+ )
32541
+
32542
+ LogMessageByIdWithPopupCheckParticipants = _Deprecated(
32543
+ "LogMessageByIdWithPopupCheckParticipants", LogMessageByIdWithPopupAndAbility
32544
+ )
32545
+
30680
32546
 
30681
32547
  class JpOverlay29Data:
30682
32548
 
@@ -31205,12 +33071,21 @@ class JpOverlay29Data:
31205
33071
  DIRECTIONS_XY = Symbol(
31206
33072
  [0x750BC],
31207
33073
  [0x235299C],
31208
- None,
33074
+ 0x20,
31209
33075
  "DIRECTIONS_XY",
31210
33076
  "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
33077
  "int16_t[8][2]",
31212
33078
  )
31213
33079
 
33080
+ FACING_DIRECTION_INCREMENTS = Symbol(
33081
+ [0x7511C],
33082
+ [0x23529FC],
33083
+ 0x20,
33084
+ "FACING_DIRECTION_INCREMENTS",
33085
+ "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.",
33086
+ "int[8]",
33087
+ )
33088
+
31214
33089
  DISPLACEMENTS_WITHIN_2_LARGEST_FIRST = Symbol(
31215
33090
  [0x7517C],
31216
33091
  [0x2352A5C],
@@ -31364,6 +33239,15 @@ class JpOverlay29Data:
31364
33239
  "struct fx64_16",
31365
33240
  )
31366
33241
 
33242
+ WEAK_TYPE_PICKER_MATCHUP_MULTIPLIERS = Symbol(
33243
+ [0x76224],
33244
+ [0x2353B04],
33245
+ 0x10,
33246
+ "WEAK_TYPE_PICKER_MATCHUP_MULTIPLIERS",
33247
+ "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.",
33248
+ "int[4]",
33249
+ )
33250
+
31367
33251
  TYPE_DAMAGE_NEGATING_EXCLUSIVE_ITEM_EFFECTS = Symbol(
31368
33252
  [0x76244],
31369
33253
  [0x2353B24],
@@ -31583,7 +33467,7 @@ class JpOverlay29Data:
31583
33467
  DEFAULT_TILE = Symbol(
31584
33468
  [0x770BC],
31585
33469
  [0x235499C],
31586
- None,
33470
+ 0x14,
31587
33471
  "DEFAULT_TILE",
31588
33472
  "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
33473
  "struct tile",
@@ -31607,6 +33491,15 @@ class JpOverlay29Data:
31607
33491
  "void*",
31608
33492
  )
31609
33493
 
33494
+ MESSAGE_LOG_INFO = Symbol(
33495
+ [0x77164],
33496
+ [0x2354A44],
33497
+ None,
33498
+ "MESSAGE_LOG_INFO",
33499
+ "[Runtime] Struct containing information and state for logged messages.",
33500
+ "struct message_log_info",
33501
+ )
33502
+
31610
33503
  DUNGEON_FADES_PTR = Symbol(
31611
33504
  [0x77178],
31612
33505
  [0x2354A58],
@@ -31715,12 +33608,12 @@ class JpOverlay30Section:
31715
33608
 
31716
33609
  class JpOverlay31Functions:
31717
33610
 
31718
- EntryOverlay31 = Symbol(
33611
+ InitDungeonMenu = Symbol(
31719
33612
  [0x0],
31720
33613
  [0x2383AA0],
31721
33614
  None,
31722
- "EntryOverlay31",
31723
- "Note: unverified, ported from Irdkwia's notes\n\nNo params.",
33615
+ "InitDungeonMenu",
33616
+ "Initializes the main dungeon menu and allocates a struct on the heap with information for HandleDungeonMenu.\n\nNo params.",
31724
33617
  None,
31725
33618
  )
31726
33619
 
@@ -31742,12 +33635,39 @@ class JpOverlay31Functions:
31742
33635
  None,
31743
33636
  )
31744
33637
 
31745
- CreateStairsMenuState = Symbol(
33638
+ DungeonMenuLoop = Symbol(
33639
+ [0x334],
33640
+ [0x2383DD4],
33641
+ None,
33642
+ "DungeonMenuLoop",
33643
+ "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",
33644
+ None,
33645
+ )
33646
+
33647
+ FreeDungeonMenu = Symbol(
33648
+ [0x58C],
33649
+ [0x238402C],
33650
+ None,
33651
+ "FreeDungeonMenu",
33652
+ "Closes the main dungeon menu and frees the heap-allocated struct initialized in InitDungeonMenu.\n\nNo params.",
33653
+ None,
33654
+ )
33655
+
33656
+ StairsMenu = Symbol(
33657
+ [0x5F8],
33658
+ [0x2384098],
33659
+ None,
33660
+ "StairsMenu",
33661
+ "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",
33662
+ None,
33663
+ )
33664
+
33665
+ InitStairsMenu = Symbol(
31746
33666
  [0x6B4],
31747
33667
  [0x2384154],
31748
33668
  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)",
33669
+ "InitStairsMenu",
33670
+ "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
33671
  None,
31752
33672
  )
31753
33673
 
@@ -31760,12 +33680,48 @@ class JpOverlay31Functions:
31760
33680
  None,
31761
33681
  )
31762
33682
 
31763
- HandleStairsMenu = Symbol(
33683
+ StairsMenuLoop = Symbol(
31764
33684
  [0x79C],
31765
33685
  [0x238423C],
31766
33686
  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",
33687
+ "StairsMenuLoop",
33688
+ "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)",
33689
+ None,
33690
+ )
33691
+
33692
+ CloseMainStairsMenu = Symbol(
33693
+ [0xA6C],
33694
+ [0x238450C],
33695
+ None,
33696
+ "CloseMainStairsMenu",
33697
+ "Closes the main stairs menu. Used both when closing it entirely as well as when switching to the info menu.\n\nNo params.",
33698
+ None,
33699
+ )
33700
+
33701
+ FreeStairsMenu = Symbol(
33702
+ [0xAD0],
33703
+ [0x2384570],
33704
+ None,
33705
+ "FreeStairsMenu",
33706
+ "Closes the main stairs menu and frees the heap-allocated stairs_menu struct pointed to by STAIRS_MENU_PTR.\n\nNo params.",
33707
+ None,
33708
+ )
33709
+
33710
+ EntityIsValidOverlay31 = Symbol(
33711
+ [0xE38],
33712
+ [0x23848D8],
33713
+ None,
33714
+ "EntityIsValidOverlay31",
33715
+ "See overlay29.yml::EntityIsValid",
33716
+ None,
33717
+ )
33718
+
33719
+ ItemsMenu = Symbol(
33720
+ [0x10C4],
33721
+ [0x2384B64],
33722
+ None,
33723
+ "ItemsMenu",
33724
+ "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
33725
  None,
31770
33726
  )
31771
33727
 
@@ -31832,6 +33788,15 @@ class JpOverlay31Functions:
31832
33788
  None,
31833
33789
  )
31834
33790
 
33791
+ DrawDungeonHintContents = Symbol(
33792
+ [0x69CC],
33793
+ [0x238A46C],
33794
+ None,
33795
+ "DrawDungeonHintContents",
33796
+ "Draws the contents of the current dungeon hint that is to be displayed in the Dungeon Hints menu.\n\nr0: window id",
33797
+ None,
33798
+ )
33799
+
31835
33800
  HelpMenuLoop = Symbol(
31836
33801
  [0x6A20],
31837
33802
  [0x238A4C0],
@@ -31841,6 +33806,12 @@ class JpOverlay31Functions:
31841
33806
  None,
31842
33807
  )
31843
33808
 
33809
+ EntryOverlay31 = _Deprecated("EntryOverlay31", InitDungeonMenu)
33810
+
33811
+ CreateStairsMenuState = _Deprecated("CreateStairsMenuState", InitStairsMenu)
33812
+
33813
+ HandleStairsMenu = _Deprecated("HandleStairsMenu", StairsMenuLoop)
33814
+
31844
33815
 
31845
33816
  class JpOverlay31Data:
31846
33817
 
@@ -31938,39 +33909,39 @@ class JpOverlay31Data:
31938
33909
  "struct window_params",
31939
33910
  )
31940
33911
 
31941
- DUNGEON_SUBMENU_ITEMS_1 = Symbol(
33912
+ STAIRS_MENU_ITEMS_NORMAL = Symbol(
31942
33913
  [0x7698],
31943
33914
  [0x238B138],
31944
33915
  0x20,
31945
- "DUNGEON_SUBMENU_ITEMS_1",
31946
- "",
33916
+ "STAIRS_MENU_ITEMS_NORMAL",
33917
+ "List of 4 simple_menu_id_items for the normal stairs menu.",
31947
33918
  "struct simple_menu_id_item[4]",
31948
33919
  )
31949
33920
 
31950
- DUNGEON_SUBMENU_ITEMS_2 = Symbol(
33921
+ STAIRS_MENU_ITEMS_WARP_ZONE = Symbol(
31951
33922
  [0x76B8],
31952
33923
  [0x238B158],
31953
33924
  0x20,
31954
- "DUNGEON_SUBMENU_ITEMS_2",
31955
- "",
33925
+ "STAIRS_MENU_ITEMS_WARP_ZONE",
33926
+ "List of 4 simple_menu_id_items for the Warp Zone stairs menu.",
31956
33927
  "struct simple_menu_id_item[4]",
31957
33928
  )
31958
33929
 
31959
- DUNGEON_SUBMENU_ITEMS_3 = Symbol(
33930
+ STAIRS_MENU_ITEMS_RESCUE_POINT = Symbol(
31960
33931
  [0x76D8],
31961
33932
  [0x238B178],
31962
33933
  0x20,
31963
- "DUNGEON_SUBMENU_ITEMS_3",
31964
- "",
33934
+ "STAIRS_MENU_ITEMS_RESCUE_POINT",
33935
+ "List of 4 simple_menu_id_items for the Rescue Point stairs menu.",
31965
33936
  "struct simple_menu_id_item[4]",
31966
33937
  )
31967
33938
 
31968
- DUNGEON_SUBMENU_ITEMS_4 = Symbol(
33939
+ STAIRS_MENU_ITEMS_HIDDEN_STAIRS = Symbol(
31969
33940
  [0x76F8],
31970
33941
  [0x238B198],
31971
33942
  0x20,
31972
- "DUNGEON_SUBMENU_ITEMS_4",
31973
- "",
33943
+ "STAIRS_MENU_ITEMS_HIDDEN_STAIRS",
33944
+ "List of 4 simple_menu_id_items for the hidden stairs menu.",
31974
33945
  "struct simple_menu_id_item[4]",
31975
33946
  )
31976
33947
 
@@ -32379,6 +34350,22 @@ class JpOverlay31Data:
32379
34350
  "",
32380
34351
  )
32381
34352
 
34353
+ DUNGEON_SUBMENU_ITEMS_1 = _Deprecated(
34354
+ "DUNGEON_SUBMENU_ITEMS_1", STAIRS_MENU_ITEMS_NORMAL
34355
+ )
34356
+
34357
+ DUNGEON_SUBMENU_ITEMS_2 = _Deprecated(
34358
+ "DUNGEON_SUBMENU_ITEMS_2", STAIRS_MENU_ITEMS_WARP_ZONE
34359
+ )
34360
+
34361
+ DUNGEON_SUBMENU_ITEMS_3 = _Deprecated(
34362
+ "DUNGEON_SUBMENU_ITEMS_3", STAIRS_MENU_ITEMS_RESCUE_POINT
34363
+ )
34364
+
34365
+ DUNGEON_SUBMENU_ITEMS_4 = _Deprecated(
34366
+ "DUNGEON_SUBMENU_ITEMS_4", STAIRS_MENU_ITEMS_HIDDEN_STAIRS
34367
+ )
34368
+
32382
34369
 
32383
34370
  class JpOverlay31Section:
32384
34371
  name = "overlay31"
@@ -33495,6 +35482,15 @@ class JpRamData:
33495
35482
  "int",
33496
35483
  )
33497
35484
 
35485
+ DEFAULT_TILE_COPY = Symbol(
35486
+ [0x37DD38],
35487
+ [0x237DD38],
35488
+ 0x14,
35489
+ "DEFAULT_TILE_COPY",
35490
+ "A copy of DEFAULT_TILE. Used to hold the default tile returned from GetTileSafe.",
35491
+ "struct tile",
35492
+ )
35493
+
33498
35494
  FLOOR_GENERATION_STATUS = Symbol(
33499
35495
  [0x37E23C],
33500
35496
  [0x237E23C],