pmdsky-debug-py 10.1.14__py3-none-any.whl → 10.2.19__py3-none-any.whl

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