diff options
| -rw-r--r-- | src/engine/PlayerBombKart.cpp | 28 | ||||
| -rw-r--r-- | src/render_objects.c | 39 |
2 files changed, 50 insertions, 17 deletions
diff --git a/src/engine/PlayerBombKart.cpp b/src/engine/PlayerBombKart.cpp index 9ab3b74e1..7f8d05f8d 100644 --- a/src/engine/PlayerBombKart.cpp +++ b/src/engine/PlayerBombKart.cpp @@ -38,12 +38,20 @@ void PlayerBombKart::func_800563DC(s32 cameraId, s32 arg2) { D_80183E80[1] = func_800418AC(pos.x, pos.z, camera->pos); D_80183E80[2] = 0x8000; rsp_set_matrix_transformation(D_80183E40, D_80183E80, 0.2f); - gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D007E98); + gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D007E98); func_8004B310(arg2); - draw_rectangle_texture_overlap((u8*) common_tlut_bomb, (u8*)common_texture_bomb[residue], (Vtx*)D_0D005AE0, 0x00000020, - 0x00000020, 0x00000020, 0x00000020); + + int heigh = 32; + int width = 32; + + gDPLoadTLUT_pal256(gDisplayListHead++, common_tlut_bomb); + rsp_load_texture((u8*) common_texture_bomb[residue], width, heigh); + gSPVertex(gDisplayListHead++, (uintptr_t) D_0D005AE0, 4, 0); + gSPDisplayList(gDisplayListHead++, (Gfx*) common_rectangle_display); + gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF); + temp_s0 = D_8018D400; - gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D007B00); + gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D007B00); func_8004B414(0, 0, 0, arg2); D_80183E40[1] = D_80183E40[1] + 4.0; D_80183E80[2] = 0; @@ -58,22 +66,22 @@ void PlayerBombKart::func_800563DC(s32 cameraId, s32 arg2) { } void PlayerBombKart::func_8005669C(s32 arg2) { - gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D0079E8); + gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D0079E8); func_8004B310(arg2); load_texture_block_rgba16_mirror((u8*) D_0D02AA58, 0x00000010, 0x00000010); D_80183E40[1] = pos.y - 2.0; D_80183E40[0] = pos.x + 2.0; D_80183E40[2] = pos.z + 2.0; - func_800431B0(D_80183E40, D_80183E80, 0.15f, (Vtx*)common_vtx_rectangle); + func_800431B0(D_80183E40, D_80183E80, 0.15f, (Vtx*) common_vtx_rectangle); D_80183E40[0] = pos.x + 2.0; D_80183E40[2] = pos.z - 2.0; - func_800431B0(D_80183E40, D_80183E80, 0.15f, (Vtx*)common_vtx_rectangle); + func_800431B0(D_80183E40, D_80183E80, 0.15f, (Vtx*) common_vtx_rectangle); D_80183E40[0] = pos.x - 2.0; D_80183E40[2] = pos.z - 2.0; - func_800431B0(D_80183E40, D_80183E80, 0.15f, (Vtx*)common_vtx_rectangle); + func_800431B0(D_80183E40, D_80183E80, 0.15f, (Vtx*) common_vtx_rectangle); D_80183E40[0] = pos.x - 2.0; D_80183E40[2] = pos.z + 2.0; - func_800431B0(D_80183E40, D_80183E80, 0.15f, (Vtx*)common_vtx_rectangle); + func_800431B0(D_80183E40, D_80183E80, 0.15f, (Vtx*) common_vtx_rectangle); gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF); } @@ -91,5 +99,5 @@ void PlayerBombKart::func_800568A0(s32 cameraId) { // G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); AddHudMatrix(mtx, G_MTX_LOAD | G_MTX_NOPUSH | G_MTX_MODELVIEW); - gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D007B98); + gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D007B98); }
\ No newline at end of file diff --git a/src/render_objects.c b/src/render_objects.c index 89fad088e..11704228a 100644 --- a/src/render_objects.c +++ b/src/render_objects.c @@ -1296,11 +1296,14 @@ void func_8004A258(s32 arg0, s32 arg1, u16 arg2, f32 arg3, u8* texture, Vtx* arg } void func_8004A2F4(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 red, s32 green, s32 blue, s32 alpha, u8* texture, - Vtx* arg9, s32 argA, s32 argB, s32 argC, s32 argD) { + Vtx* vtx, s32 argA, s32 argB, s32 width, s32 height) { func_80042330(arg0, arg1, arg2, arg3); gSPDisplayList(gDisplayListHead++, D_0D007A40); func_8004B414(red, green, blue, alpha); - func_80049970(texture, arg9, argA, argB, argC, argD); + func_80044DA0(texture, argA, argB); + gSPVertex(gDisplayListHead++, vtx, 4, 0); + gSPDisplayList(gDisplayListHead++, common_rectangle_display); + gSPTexture(gDisplayListHead++, 0x0001, 0x0001, 0, G_TX_RENDERTILE, G_OFF); } void func_8004A384(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 red, s32 green, s32 blue, s32 alpha, u8* texture, @@ -2713,13 +2716,20 @@ void render_digital_speedometer(s32 playerIdx) { text_draw_wide(270, 224, str, 0, 0.5f, 0.5f); } +Vtx speedometer_vtx[] = { + { { { -32, -47, 0 }, 0, { 0, 0 }, { 255, 255, 255, 255 } } }, + { { { 31, -47, 0 }, 0, { 4032, 0 }, { 255, 255, 255, 255 } } }, + { { { 31, 47, 0 }, 0, { 4032, 6016 }, { 255, 255, 255, 255 } } }, + { { { -32, 47, 0 }, 0, { 0, 6016 }, { 255, 255, 255, 255 } } }, +}; + // render the speedometer for the player void render_speedometer(s32 playerIdx) { gSPClearGeometryMode(gDisplayListHead++, G_ZBUFFER); func_8004A2F4(playerHUD[playerIdx].speedometerX, playerHUD[playerIdx].speedometerY, 0U, 1.0f, // RGBA CM_GetProps()->Minimap.Colour.r, CM_GetProps()->Minimap.Colour.g, CM_GetProps()->Minimap.Colour.b, - 0xFF, LOAD_ASSET(common_texture_speedometer), LOAD_ASSET(D_0D0064B0), 64, 96, 64, 48); + 0xFF, common_texture_speedometer, speedometer_vtx, 64, 96, 64, 48); // x, y, needle rot func_8004A258(D_8018CFEC, D_8018CFF4, D_8016579E, 1.0f, common_texture_speedometer_needle, D_0D005FF0, 0x40, 0x20, 0x40, 0x20); @@ -4103,8 +4113,16 @@ void func_800563DC(s32 objectIndex, s32 cameraId, s32 arg2) { rsp_set_matrix_transformation(D_80183E40, D_80183E80, 0.2f); gSPDisplayList(gDisplayListHead++, D_0D007E98); func_8004B310(arg2); - draw_rectangle_texture_overlap((u8*) common_tlut_bomb, common_texture_bomb[residue], D_0D005AE0, 0x00000020, - 0x00000020, 0x00000020, 0x00000020); + + int heigh = 32; + int width = 32; + + gDPLoadTLUT_pal256(gDisplayListHead++, common_tlut_bomb); + rsp_load_texture((u8*) common_texture_bomb[residue], width, heigh); + gSPVertex(gDisplayListHead++, (uintptr_t) D_0D005AE0, 4, 0); + gSPDisplayList(gDisplayListHead++, (Gfx*) common_rectangle_display); + gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF); + temp_s0 = D_8018D400; gSPDisplayList(gDisplayListHead++, D_0D007B00); func_8004B414(0, 0, 0, arg2); @@ -4208,8 +4226,15 @@ void func_80056BF0(s32 bombIndex) { D_80183E40[0] = sp40.bombPos[0]; D_80183E40[1] = sp40.bombPos[1] + 1.0; D_80183E40[2] = sp40.bombPos[2]; - draw_2d_texture_at(D_80183E40, D_80183E80, 0.25f, (u8*) common_tlut_bomb, bombFrame, D_0D005AE0, 0x20, 0x20, 0x20, - 0x20); + + rsp_set_matrix_transformation(D_80183E40, D_80183E80, 0.25f); + gSPDisplayList(gDisplayListHead++, D_0D007D78); + gDPLoadTLUT_pal256(gDisplayListHead++, (u8*) common_tlut_bomb); + rsp_load_texture(bombFrame, 0x20, 0x20); + gSPVertex(gDisplayListHead++, D_0D005AE0, 4, 0); + gSPDisplayList(gDisplayListHead++, common_rectangle_display); + gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF); + temp_s0 = D_8018D400; gSPDisplayList(gDisplayListHead++, D_0D007B00); func_8004B414(0, 0, 0, 0xFF); |
