Textures doc (#467)

* add few description

* Update Doxyfile

* remove space

* Update player_controller.c
This commit is contained in:
coco875
2023-10-19 18:44:00 +02:00
committed by GitHub
parent a870180a2c
commit c71395bc59
3 changed files with 2916 additions and 51 deletions
+2866 -9
View File
File diff suppressed because it is too large Load Diff
+42 -42
View File
@@ -382,7 +382,7 @@ void func_80027DA8(Player *arg0, s8 arg1) {
void func_80027EDC(Player *player, s8 playerId) {
UNUSED s32 pad;
if (((player->type & 0x4000) == 0x4000) && ((player->type & 0x100) != 0x100)) {
if (((player->type & PLAYER_HUMAN) == PLAYER_HUMAN) && ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) {
switch (gCurrentCourseId) {
case COURSE_MARIO_RACEWAY:
if (((s16)gNearestWaypointByPlayerId[playerId] >= 0x19B) && ((s16)gNearestWaypointByPlayerId[playerId] < 0x1B9)) {
@@ -670,7 +670,7 @@ void func_80028864(Player *player, Camera *camera, s8 arg2, s8 arg3) {
} else if (player->type & 0x80) {
func_8002D268(player, camera, arg3, arg2);
} else {
if ((player->type & 0x4000) != 0x4000) {
if ((player->type & PLAYER_HUMAN) != PLAYER_HUMAN) {
player->currentSpeed = 50.0f;
}
player->effects &= ~8;
@@ -1230,7 +1230,7 @@ void func_8002A5F4(Vec3f arg0, f32 arg1, Vec3f arg2, f32 arg3, f32 arg4) {
void func_8002A704(Player *player, s8 arg1) {
player->effects |= 0x2000;
player->statusEffects &= ~0x02000000;
if (((player->type & 0x4000) == 0x4000) && ((player->type & 0x100) != 0x100)) {
if (((player->type & PLAYER_HUMAN) == PLAYER_HUMAN) && ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) {
func_800C90F4(0U, (player->characterId * 0x10) + 0x29008001);
func_800C9060(arg1, 0x1900A40BU);
}
@@ -1244,7 +1244,7 @@ void func_8002A79C(Player *player, s8 arg1) {
player->unk_22A = 0;
player->unk_228 = 0;
if (D_8015F890 != 1) {
if ((player->type & 0x4000) && !(player->type & PLAYER_INVISIBLE_OR_BOMB)) {
if ((player->type & PLAYER_HUMAN) && !(player->type & PLAYER_INVISIBLE_OR_BOMB)) {
func_800C9250(arg1);
}
} else if (player == gPlayerOne) {
@@ -1267,7 +1267,7 @@ void func_8002A8A4(Player *player, s8 arg1) {
if (player->unk_228 < 0x65) {
player->unk_228++;
}
if ((player->unk_228 == 0x0064) && (player->type & 0x4000)) {
if ((player->unk_228 == 0x0064) && (player->type & PLAYER_HUMAN)) {
func_800C9060(arg1, 0x1900851EU);
}
} else {
@@ -1287,7 +1287,7 @@ void func_8002A8A4(Player *player, s8 arg1) {
if (player->unk_228 < 0x65) {
player->unk_228++;
}
if ((player->unk_228 == 0x0064) && (player->type & 0x4000)) {
if ((player->unk_228 == 0x0064) && (player->type & PLAYER_HUMAN)) {
func_800C9060(arg1, 0x1900851EU);
}
} else {
@@ -1523,7 +1523,7 @@ void func_8002B308(Player *player, s8 arg1, UNUSED s8 arg2) {
if ((player->statusEffects & 1) == 1) {
func_8008CDC0(player, arg1);
}
if ((player->statusEffects & 0x200) == 0x200) {
if ((player->statusEffects & BOOST_EFFECT) == BOOST_EFFECT) {
func_8008D3C4(player, arg1);
}
if ((player->statusEffects & 0x02000000) == 0x02000000) {
@@ -1556,10 +1556,10 @@ void func_8002B308(Player *player, s8 arg1, UNUSED s8 arg2) {
if ((player->statusEffects & 0x8000) == 0x8000) {
func_8008EEE4(player, arg1);
}
if ((player->statusEffects & 0x2000) == 0x2000) {
if ((player->statusEffects & STAR_EFFECT) == STAR_EFFECT) {
func_8008F778(player, arg1);
}
if ((player->statusEffects & 0x800) == 0x800) {
if ((player->statusEffects & BOO_EFFECT) == BOO_EFFECT) {
func_8008FA38(player, arg1);
}
if (player->statusEffects & 0x80) {
@@ -1931,7 +1931,7 @@ void func_8002C4F8(Player *player, s8 arg1) {
if ((gCurrentCourseId != COURSE_KOOPA_BEACH) &&
(gCurrentCourseId != COURSE_SKYSCRAPER) &&
(gCurrentCourseId != COURSE_RAINBOW_ROAD) &&
((player->type & 0x4000) == 0x4000)) {
((player->type & PLAYER_HUMAN) == PLAYER_HUMAN)) {
if ((gCurrentCourseId == COURSE_BOWSER_CASTLE) ||
(gCurrentCourseId == COURSE_BIG_DONUT)) {
func_800C9060((u8) arg1, 0x1900801CU);
@@ -1976,7 +1976,7 @@ void func_8002C7E4(Player *player, s8 arg1, s8 arg2) {
player->unk_044 &= ~0x0001;
player->unk_046 |= 1;
player->unk_046 |= 8;
if ((player->type & 0x4000) == 0x4000) {
if ((player->type & PLAYER_HUMAN) == PLAYER_HUMAN) {
func_8001CA24(player, 2.8f);
}
if ((player->unk_046 & 2) == 2) {
@@ -2032,7 +2032,7 @@ void func_8002C954(Player *player, s8 arg1, Vec3f arg2) {
}
player->unk_046 |= 0x20;
}
if (((player->type & 0x4000) == 0x4000) && (((player->unk_094 / 18.0f) * 216.0f) > 30.0f)) {
if (((player->type & PLAYER_HUMAN) == PLAYER_HUMAN) && (((player->unk_094 / 18.0f) * 216.0f) > 30.0f)) {
func_8001CA24(player, 3.0f);
}
player->unk_046 |= 0x10;
@@ -2043,7 +2043,7 @@ void func_8002C954(Player *player, s8 arg1, Vec3f arg2) {
if ((player->slopeAccel >= 0) && (((player->unk_094 / 18.0f) * 216.0f) > 5.0f)) {
func_80031F48(player, 18.0f);
}
if ((player->type & 0x4000) == 0x4000) {
if ((player->type & PLAYER_HUMAN) == PLAYER_HUMAN) {
xdist = D_80165070[arg1][0] - arg2[0];
var_f14 = D_80165070[arg1][1] - arg2[1];
ydist = var_f14; // okay
@@ -2228,11 +2228,11 @@ void func_8002D268(Player *player, UNUSED Camera *camera, s8 arg2, s8 playerId)
func_80027EDC(player, playerId);
func_8002C11C(player);
if ((player->type & 0x4000) == 0x4000) {
if ((player->type & PLAYER_HUMAN) == PLAYER_HUMAN) {
func_8002A79C(player, playerId);
}
func_8002B830(player, playerId, arg2);
if (((player->type & 0x4000) == 0x4000) && ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) {
if (((player->type & PLAYER_HUMAN) == PLAYER_HUMAN) && ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) {
func_8002BF4C(player, playerId);
}
func_8002CD48(player, playerId, arg2);
@@ -2359,16 +2359,16 @@ void func_8002D268(Player *player, UNUSED Camera *camera, s8 arg2, s8 playerId)
player->unk_DB4.unkC = 3.0f;
player->unk_DB4.unk18 = 0;
player->unk_0B6 |= 0x100;
if ((((player->type & 0x4000) == 0x4000)
if ((((player->type & PLAYER_HUMAN) == PLAYER_HUMAN)
&& ((player->effects & 0x100000) == 0x100000))
&& ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB))
func_800C9060(playerId, 0x1900A60AU);
else if (((player->type & 0x4000) == 0x4000) && ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB))
else if (((player->type & PLAYER_HUMAN) == PLAYER_HUMAN) && ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB))
{
func_800CADD0((u8) playerId, ((f32) player->unk_0C2) / 35.0f);
}
if ((player->type & 0x4000) == 0x4000)
if ((player->type & PLAYER_HUMAN) == PLAYER_HUMAN)
{
player->unk_044 |= 0x100;
}
@@ -2376,18 +2376,18 @@ void func_8002D268(Player *player, UNUSED Camera *camera, s8 arg2, s8 playerId)
if (((player->unk_0C2 < 0x23) && (player->unk_0C2 >= 0x1C)) && (((player->unk_094 / 18.0f) * 216.0f) >= 20.0f)) {
player->unk_DB4.unkC = 2.8f;
player->unk_DB4.unk18 = 0;
if (((player->type & 0x4000) == 0x4000)
if (((player->type & PLAYER_HUMAN) == PLAYER_HUMAN)
&& ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) {
func_800CADD0((u8) playerId, ((f32) player->unk_0C2) / 35.0f);
}
if ((player->type & 0x4000) == 0x4000) {
if ((player->type & PLAYER_HUMAN) == PLAYER_HUMAN) {
player->unk_044 |= 0x100;
}
}
if (((player->unk_0C2 < 0x1C) && (player->unk_0C2 >= 4)) && (((player->unk_094 / 18.0f) * 216.0f) >= 20.0f)) {
player->unk_DB4.unk18 = 0;
player->unk_DB4.unkC = 1.5f;
if (((player->type & 0x4000) == 0x4000) && ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) {
if (((player->type & PLAYER_HUMAN) == PLAYER_HUMAN) && ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) {
if (((player->unk_0C2 < 0xB) && (player->unk_0C2 >= 4)) && (gCurrentCourseId == COURSE_BOWSER_CASTLE)) {
func_800CADD0((u8) playerId, player->unk_0C2 / 14.0f);
}
@@ -2435,7 +2435,7 @@ void func_8002D268(Player *player, UNUSED Camera *camera, s8 arg2, s8 playerId)
func_8008F5A4(player, playerId);
}
player->unk_074 = func_802ABE30(spFC, spF8, spF4, player->unk_110.unk3A);
if (((player->type & 0x4000) == 0x4000) && (((gActiveScreenMode == SCREEN_MODE_1P) || (gActiveScreenMode == SCREEN_MODE_2P_SPLITSCREEN_VERTICAL)) || (gActiveScreenMode == SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL))) {
if (((player->type & PLAYER_HUMAN) == PLAYER_HUMAN) && (((gActiveScreenMode == SCREEN_MODE_1P) || (gActiveScreenMode == SCREEN_MODE_2P_SPLITSCREEN_VERTICAL)) || (gActiveScreenMode == SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL))) {
func_80029B4C(player, spFC, spF8, spF4);
} else {
func_8002A194(player, spFC, spF8, spF4);
@@ -2457,7 +2457,7 @@ void func_8002D268(Player *player, UNUSED Camera *camera, s8 arg2, s8 playerId)
player->pos[2] = spF4;
}
player->pos[1] = spF8;
if ((player->type & 0x4000) && (!(player->type & PLAYER_CPU))) {
if ((player->type & PLAYER_HUMAN) && (!(player->type & PLAYER_CPU))) {
func_8002BB9C(player, &spFC, &spF4, arg2, playerId, sp98);
}
player->unk_064[0] = sp178[0];
@@ -2468,7 +2468,7 @@ void func_8002D268(Player *player, UNUSED Camera *camera, s8 arg2, s8 playerId)
D_80165070[playerId][0] = sp98[0];
D_80165070[playerId][1] = sp98[1];
D_80165070[playerId][2] = sp98[2];
if ((player->type & 0x4000) == 0x4000) {
if ((player->type & PLAYER_HUMAN) == PLAYER_HUMAN) {
if (gKartTopSpeedTable[player->characterId] < player->unk_094) {
temp = gKartTopSpeedTable[player->characterId] / player->unk_094;
player->velocity[0] *= temp;
@@ -2622,10 +2622,10 @@ void func_8002E594(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) {
player->unk_DB4.unk18 = 0;
player->unk_0B6 |= 0x100;
player->unk_DB4.unkC = 3.0f;
if (((player->type & 0x4000) == 0x4000) && ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) {
if (((player->type & PLAYER_HUMAN) == PLAYER_HUMAN) && ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) {
func_800CADD0((u8) arg3, ((f32) player->unk_0C2) / 50.0f);
}
if ((player->type & 0x4000) == 0x4000) {
if ((player->type & PLAYER_HUMAN) == PLAYER_HUMAN) {
player->unk_044 |= 0x100;
}
}
@@ -2634,10 +2634,10 @@ void func_8002E594(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) {
&& (((player->unk_094 / 18.0f) * 216.0f) >= 20.0f)) {
player->unk_DB4.unkC = 2.0f;
player->unk_DB4.unk18 = 0;
if (((player->type & 0x4000) == 0x4000) && ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) {
if (((player->type & PLAYER_HUMAN) == PLAYER_HUMAN) && ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) {
func_800CADD0((u8) arg3, ((f32) player->unk_0C2) / 50.0f);
}
if ((player->type & 0x4000) == 0x4000) {
if ((player->type & PLAYER_HUMAN) == PLAYER_HUMAN) {
player->unk_044 |= 0x100;
}
}
@@ -2647,7 +2647,7 @@ void func_8002E594(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) {
if (player->unk_0C2 >= 0x32) {
player->unk_0C2 = 0x0032;
}
if (((player->type & 0x4000) == 0x4000) && ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) {
if (((player->type & PLAYER_HUMAN) == PLAYER_HUMAN) && ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) {
func_800CADD0((u8) arg3, ((f32) player->unk_0C2) / 20.0f);
}
if (player->unk_0C2 >= 0x28) {
@@ -2661,7 +2661,7 @@ void func_8002E594(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) {
player->unk_0C2 /= 7.5;
player->kartHopJerk = 0.06f;
player->kartHopAcceleration = 0.0f;
if ((player->type & 0x4000) == 0x4000) {
if ((player->type & PLAYER_HUMAN) == PLAYER_HUMAN) {
player->unk_044 |= 0x100;
}
}
@@ -2709,7 +2709,7 @@ void func_8002E594(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) {
func_8008F5A4(player, arg3);
}
player->unk_074 = func_802ABE30(spD0, spCC, spC8, player->unk_110.unk3A);
if (((player->type & 0x4000) == 0x4000) && (((gActiveScreenMode == SCREEN_MODE_1P) || (gActiveScreenMode == SCREEN_MODE_2P_SPLITSCREEN_VERTICAL)) || (gActiveScreenMode == SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL))) {
if (((player->type & PLAYER_HUMAN) == PLAYER_HUMAN) && (((gActiveScreenMode == SCREEN_MODE_1P) || (gActiveScreenMode == SCREEN_MODE_2P_SPLITSCREEN_VERTICAL)) || (gActiveScreenMode == SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL))) {
func_80029B4C(player, spD0, spCC, spC8);
} else {
func_8002A194(player, spD0, spCC, spC8);
@@ -2737,7 +2737,7 @@ void func_8002E594(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) {
player->velocity[0] = sp54[0];
player->velocity[1] = sp54[1];
player->velocity[2] = sp54[2];
if ((player->type & 0x4000) == 0x4000) {
if ((player->type & PLAYER_HUMAN) == PLAYER_HUMAN) {
if (gKartTopSpeedTable[player->characterId] < player->unk_094) {
temp_f0_6 = gKartTopSpeedTable[player->characterId] / player->unk_094;
player->velocity[0] *= temp_f0_6;
@@ -2890,7 +2890,7 @@ void func_8002F730(Player *player, UNUSED Camera *camera, UNUSED s8 arg2, s8 arg
func_8003F46C(player, sp5C, sp68, spE8, &sp78, &spCC, &spC8, &spC4);
}
player->unk_074 = func_802ABE30(spCC, spC8, spC4, player->unk_110.unk3A);
if (((player->type & 0x4000) == 0x4000) && ((gActiveScreenMode == SCREEN_MODE_1P) || (gActiveScreenMode == SCREEN_MODE_2P_SPLITSCREEN_VERTICAL) || (gActiveScreenMode == SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL))) {
if (((player->type & PLAYER_HUMAN) == PLAYER_HUMAN) && ((gActiveScreenMode == SCREEN_MODE_1P) || (gActiveScreenMode == SCREEN_MODE_2P_SPLITSCREEN_VERTICAL) || (gActiveScreenMode == SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL))) {
func_80029B4C(player, spCC, spC8, spC4);
} else {
func_8002A194(player, spCC, spC8, spC4);
@@ -2919,7 +2919,7 @@ void func_8002F730(Player *player, UNUSED Camera *camera, UNUSED s8 arg2, s8 arg
D_80165070[arg3][1] = sp68[1];
D_80165070[arg3][2] = sp68[2];
if ((player->type & 0x4000) == 0x4000) {
if ((player->type & PLAYER_HUMAN) == PLAYER_HUMAN) {
if (gKartTopSpeedTable[player->characterId] < player->unk_094) {
temp_f0_2 = gKartTopSpeedTable[player->characterId] / player->unk_094;
player->velocity[0] *= temp_f0_2;
@@ -2962,7 +2962,7 @@ void func_8002FCA8(Player *player, s8 arg1) {
var_f0 += 1.0;
}
}
if (((player->effects & 0x200000) == 0x200000) && ((player->type & 0x4000) != 0x4000)) {
if (((player->effects & 0x200000) == 0x200000) && ((player->type & PLAYER_HUMAN) != PLAYER_HUMAN)) {
var_f0 = -3.0f;
}
@@ -3111,14 +3111,14 @@ f32 func_80030150(Player *player, s8 arg1) {
}
}
}
if ((player->type & 0x4000) != 0x4000) {
if ((player->type & PLAYER_HUMAN) != PLAYER_HUMAN) {
if ((player->effects & 0x200000) == 0x200000) {
move_f32_towards(&player->unk_0E8, 380.0f, 0.5f);
} else {
move_f32_towards(&player->unk_0E8, 0.0f, 0.1f);
}
}
if ((player->type & 0x4000) == 0x4000) {
if ((player->type & PLAYER_HUMAN) == PLAYER_HUMAN) {
if (((player->effects & 0x100) == 0x100) && ((player->effects & 0x10) != 0x10)) {
move_f32_towards(&player->unk_0E8, 580.0f, 0.2f);
} else {
@@ -4356,7 +4356,7 @@ void func_80036C5C(Player *arg0) {
void func_80036CB4(Player *player) {
s32 test;
if (((player->effects & 0x10) == 0x10) && ((player->type & 0x4000) == 0x4000)) {
if (((player->effects & 0x10) == 0x10) && ((player->type & PLAYER_HUMAN) == PLAYER_HUMAN)) {
if ((player->unk_0C0 / 182) > 0) {
test = ((((player->unk_07C >> 0x10) * 0xD) + 0x2B1) / 106) + 0x28;
player->unk_07C = test << 0x10;
@@ -4367,7 +4367,7 @@ void func_80036CB4(Player *player) {
}
player->effects &= ~0x10;
}
if (((player->effects & 0x10) == 0x10) && ((player->type & 0x4000) != 0x4000)) {
if (((player->effects & 0x10) == 0x10) && ((player->type & PLAYER_HUMAN) != PLAYER_HUMAN)) {
player->effects &= ~0x10;
}
}
@@ -4642,7 +4642,7 @@ void func_80037CFC(Player *player, struct Controller *controller, s8 arg2) {
((player->effects & 0x10) != 0x10) &&
(controller->buttonPressed & R_TRIG)) {
func_8002AA50(player);
if (((player->type & 0x4000) == 0x4000) && ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) {
if (((player->type & PLAYER_HUMAN) == PLAYER_HUMAN) && ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) {
func_800C9060(arg2, 0x19008000);
}
}
@@ -4733,7 +4733,7 @@ void func_80037CFC(Player *player, struct Controller *controller, s8 arg2) {
void func_800381AC(Player *player, struct Controller *controller, s8 arg2) {
if (((player->type & PLAYER_EXISTS) == PLAYER_EXISTS) &&
((player->type & 0x4000) == 0x4000) &&
((player->type & PLAYER_HUMAN) == PLAYER_HUMAN) &&
((player->type & PLAYER_CPU) != PLAYER_CPU)) {
if ((player->type & PLAYER_START_SEQUENCE) != PLAYER_START_SEQUENCE) {
if (((player->unk_0CA & 2) == 2) || ((player->unk_0CA & 8) == 8)) {
@@ -5066,7 +5066,7 @@ void func_80038C6C(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) {
D_80165070[arg3][1] = sp88[1];
D_80165070[arg3][2] = sp88[2];
if ((player->type & 0x4000) == 0x4000) {
if ((player->type & PLAYER_HUMAN) == PLAYER_HUMAN) {
if (gKartTopSpeedTable[player->characterId] < player->unk_094) {
divOptimize = gKartTopSpeedTable[player->characterId] / player->unk_094;
player->velocity[0] *= divOptimize;
+8
View File
@@ -3,6 +3,10 @@
#include "PR/ultratypes.h"
/**
* @brief struct for a texture use in menu mainly
*
*/
typedef struct {
/* 0x00 */ s16 type;
/* 0x02 */ s16 unused1;
@@ -15,6 +19,10 @@ typedef struct {
/* 0x12 */ s16 unused2;
} MkTexture; // size = 0x14
/**
* @brief struct for an animation
*
*/
typedef struct {
/* 0x00 */ MkTexture *mk64Texture; // This should be interpreted as a segmented address
/* 0x04 */ s32 frame_length;