This decision was made to reduce the complexity of using .include whilst
juggling with tools/scaninc and tools/preproc:
- tools/scaninc doesn't apply the proper search rules for .include (it
assumes #include behavior). In particular, it doesn't consider paths
starting from $PWD, and doesn't scan the included files as a result.
- .include had to be processed before #include by preproc in many cases,
as code was being included that had to be preprocessed by CPP (think
of #define). This contradicts standard GCC behavior.
To make include paths consistent across the asm/ data/ and src/
directories, the following files were moved:
- constants/ → include/asm/constants/
- asm/macros/ → include/asm/macros/
- asm/macros.inc → include/asm/macros.inc
- include/macros/m4a.inc → include/asm/macros/m4a.inc
As part of the necessary changes for this to work, the scaninc method in
the makefile was improved to generate .d files that don't choke when
files are missing.
* decomp rest of main_menu
* move some main menu data over
* decomp some more wonder mail
* decomp the dungeon dialogue scene switches
* more wonder mail
* consolidate struct_802F204
* another wonder mail func
* more wonder mail
* slight cleanup
* more data dumping and some code cleaning
* split out cutscene scripts
* initial start at script conversion
* more script work
* use correct type
* clearer up struct field names
* split known scripts into seperate files
* no need to preproc pure ascii strings in debug
* more cutscene work
* split out personality test scripts
* solidify text macros and doc some dungeon fields
* more scripting work
* decompile sub_80918EC
* some more item related functions
* more item functions
* more decomp, fix types in other places
* more small functions
* more item related decomp
* one more weird branching item function
* fix global.h includes
* figured out branch pattern
* decompile sub_8090F58
* make temporary struct for function
* 🦀 items.s is gone 🦀
* some renaming
* rename some obvious item related constants
* fix spelling error
* decompile sub_8091290
* decompile sub_80912c8
* rename functions / struct field
* more names
* decompile 80913A0
* decompile GetItemMove
* decompile sub_80913E0
* rename function
* decompile CanSellItem function
* rename inventory struct
* add some item check functions
* fix renaming stuff
* this file shouldnt have been here
* forgot merge conflict
* decompile more item functions
* rename some stuff
* fix HM/TM naming
* Update src/code_801AFA4.c
Use enum value for USED_TM
* Fix incorrect value
* decompile sub_80915F4
* decompile HasGummiItem
* decompiled another function and renamed stuff
* decompile 2 smaller functions
* more functions
* more decompiling and renaming
* redo change that was undone in the merge
* splitting lots of pokemon square and labeling lots of other things
* actually commit this stuff
* more moving data and things
* more screen work
* split out some pokemon dungeon data
* lots of data work
* push more data work
* split kecleon, decomp another kanghaskhan func, and try to doc UpdateBGControl more
* lots of item work
* label more item things
* subtype -> category and doc types/category
* move friend area settings to src
* split out playtime into different C file and decomp a few more funcs
* time -> play_time
* fix include
* split out more wonder mail stuff
* unify 203B2C0 and unkDungeon structs. snuck in a decomp func too
* split out more menu screens
* work some more on trade items
* doc a few more things
* add a close nonmatch and decomp nullsub and small func
* rollback struct attempt since it causes nonmatchings
* only one func left in asm
* death to trade_item asm and unify into one C file
* more docing and cleanup
* label main menu and trade items menu global menu struct
* doc itemMode
* move some personality data from asm to C
* combine personality_test files and add my close attempt at RedrawPartnerSelectionMenu
* decomp some more wonder mail funcs and label some more data
* lots of data splitting and move some to src
* split out more dungeon data
* continue splitting out more dungeon data
* doc rescue team rank/pts funcs/data and exclusive pokemon ewram
* doc more sound things and decomp a func
* decomp LoadTeamRankBadge and label some data members
* split out rescue team and text util stuff
* forgot a constant
* match a few funcs and clean up a few
* cleaned up sub_80A28B4
* work on debug menu and document that and main menu
* split, decomp, label more funcs
* split exclusive pokemon data out into C
* macro-ize exlusive pokemon data
* decomp 2 more funcs
* decomp a few more
* finally match PromptNewQuestion
* woot 7% aka more debug menu stuff
* some work on decomping more save stuff
* code cleanup and decomp another save func
* fully decomp save and combine split save c files
* fix two nonmatchings
* decomp most of personality_test
* just gonna move the funcs to src in assembly for now so I can combine stuff
* label another func and some cleanup
* one func of personality test left in asm
* small cleanups and labeling of funcs
* decomp few personality funcs and clean up some pointers in the dungeon data
* de-pointer-ify friend area dialogue
* clean pointers on a personality test question
* decomp a few more main menu funcs and dump some more data
* label some funcs
* Text data cleanup!
Reformatted and fixed up all of data/text/, and extended charmap.txt
The `#P` metacharacter (prompt) acts like a newline, so I reformatted it as such.
All `.string` macros followed by `.byte 0x00` have been replaced with `.asciz` where possible, and `.string "...\0"` elsewhere, note that `.asciz` does not respect the charmap, so characters such as 'é' in 'Pokémon' or the various buttons would be incorrectly encoded.
Also cleaned up occurences of `.byte 0x24`, which should just be a literal '$' inside the string.
* Nuke all instances of `.asciz`
As discussed on Discord, globally replaced all `.asciz` macros with `.string "...\0"`, as `.asciz` did not respect the charmap.
* Minor string consistency fixes