Matched its rodata too
Required making a minor adjustment to the Player struct, which
required updating a couple of other files
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
This required making some minor adjustments to a struct in
common_structs.h, which further required a couple tiny updates to
some functions in a couple other files. Nothing too crazy.
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* import random_u16 to sm64
* rand math decomp
* Match func_80298AC0
* Match some actor funcs
* Renames
* update gitignore for .bin textures
* update player struct member 34 to Vec3f
* Named and documented actor destroy funcs
* Add some more actor types, match a function
* Identify the boundBox member of the Player struct
Note that while the `flag` members are signed, they should be understood as just a group of bits.
Based on some googling around (see https://stackoverflow.com/a/11644749) the operation `thing.flag |= 0x8000`
is NOT undefined behaviour, even though that is setting the sign bit.
The numerical interpretation of the result as a signed number is implementation defined, while the
actual operation acts on the bit representation of the number.
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
There's no reason to have our own special type when it exactly matches a GBI type.
This required updating some inc.c data as the old mk_Vtx_Flag type had the 'flag'
member in the incorrect location.
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
Sourced from https://github.com/micro500/mariokart64/wiki/Surface-Map,
only minor adjustments were made.
Updated the bounding box corner struct a little based on information from
the surface map struct.
Refreshed several mips_to_c outputs
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
Some of the variables defined in kart_attributes.c had they're type wrong when
being used in other files.
This means that some previously defined variable no longer exist, however
that's fine as they were never directly referenced. Their existence was
almost certainly a decomp artifact.
For example, D_800E2404 was never "real". Instead it was likely a compiler
artifact caused by accessing D_800E2400 at the hard coded index of 1.
I've updated kart_attributes.h to reflect these changes
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>
* Move texture data from asm to C
Required dropping a couple typedefs since they no longer had a purpose
Regenerated a couple mips_to_c outputs based on the updated types
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Match functions related to struct at D_8018EE10
* Remove asm for matched functions
* Match func_800B64EC, func_800B6708, and func_800B6798
* Match func_80091EE4. Fix unused variable warnings in code_80091750.c
* Name some of the fields in struct_8018EE10_entry
* Name variables related to selecting a game from the main menu
* Match a couple functions requiring jumptable
* Match func_800B4728
* Match func_800B536C, func_800B5888, func_800B5AAC, and func_800B5AD8
* Name functions related to loading and validating SaveData
* Match func_800B4CB4
* Update selected player defines
* Match func_800B5404
* Match func_800B6088
* Meaningful commit message
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Identify another struct and array
Regenerated a lot of mips_to_c code based on these identifications
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
Some of this is identifying some functions and structs related to the Controller
pak menu
Some of it is related to structs concerning textures and "animations" and their
associated functions
* Match draw_box, func_80098C18, func_80098FC8
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
Gave some Player struct members proper names, mostly related to kart hop physics.
Renamed a couple of tables in kart_attributes to make their purpose and nature more obvious
Matched func_8002AAC0 with its assembly representation
Matched func_800225CC with its assembly representation
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>