Add support for custom HUD textures and faster texture packs w/o EXTERNAL_DATA

This commit is contained in:
MysterD 2022-05-06 22:03:12 -07:00
parent 327d97ad06
commit ad6642a4bd
81 changed files with 4741 additions and 2013 deletions

View file

@ -3,22 +3,22 @@
// TODO: These 64x64 textures are referenced as two different texture addresses in the DLs
// 0x0605AA28
ALIGNED8 static const u8 impact_smoke_seg6_texture_0605AA28[] = {
ALIGNED8 const Texture impact_smoke_seg6_texture_0605AA28[] = {
#include "actors/impact_smoke/impact_smoke_0.ia16.inc.c"
};
// 0x0605CA28
ALIGNED8 static const u8 impact_smoke_seg6_texture_0605CA28[] = {
ALIGNED8 const Texture impact_smoke_seg6_texture_0605CA28[] = {
#include "actors/impact_smoke/impact_smoke_1.ia16.inc.c"
};
// 0x0605EA28
ALIGNED8 static const u8 impact_smoke_seg6_texture_0605EA28[] = {
ALIGNED8 const Texture impact_smoke_seg6_texture_0605EA28[] = {
#include "actors/impact_smoke/impact_smoke_2.ia16.inc.c"
};
// 0x06060A28
ALIGNED8 static const u8 impact_smoke_seg6_texture_06060A28[] = {
ALIGNED8 const Texture impact_smoke_seg6_texture_06060A28[] = {
#include "actors/impact_smoke/impact_smoke_3.ia16.inc.c"
};

View file

@ -28,74 +28,43 @@ static const Lights1 luigi_brown2_lights_group = gdSPDefLights1(
0x73, 0x06, 0x00, 0x28, 0x28, 0x28
);
ALIGNED8 static const u8 luigi_texture_metal[] = {
#include "actors/mario/mario_metal.rgba16.inc.c"
};
#include "actors/mario/mario_externs.h"
#define luigi_texture_metal mario_texture_metal
#define luigi_texture_yellow_button mario_texture_yellow_button
#define luigi_texture_eyes_left mario_texture_eyes_left
#define luigi_texture_eyes_right mario_texture_eyes_right
#define luigi_texture_eyes_up mario_texture_eyes_up
#define luigi_texture_eyes_down mario_texture_eyes_down
#define luigi_texture_eyes_dead mario_texture_eyes_dead
#define luigi_texture_wings_half_1 mario_texture_wings_half_1
#define luigi_texture_wings_half_2 mario_texture_wings_half_2
#define luigi_texture_metal_wings_half_1 mario_texture_metal_wings_half_1
#define luigi_texture_metal_wings_half_2 mario_texture_metal_wings_half_2
ALIGNED8 static const u8 luigi_texture_yellow_button[] = {
#include "actors/mario/mario_overalls_button.rgba16.inc.c"
};
ALIGNED8 static const u8 luigi_texture_l_logo[] = {
ALIGNED8 const Texture luigi_texture_l_logo[] = {
#include "actors/luigi/custom_luigi_logo.rgba16.inc.c"
};
ALIGNED8 static const u8 luigi_texture_hair_sideburn[] = {
ALIGNED8 const Texture luigi_texture_hair_sideburn[] = {
#include "actors/luigi/custom_luigi_sideburn.rgba16.inc.c"
};
ALIGNED8 static const u8 luigi_texture_mustache[] = {
ALIGNED8 const Texture luigi_texture_mustache[] = {
#include "actors/luigi/custom_luigi_mustache.rgba16.inc.c"
};
ALIGNED8 static const u8 luigi_texture_eyes_front[] = {
ALIGNED8 const Texture luigi_texture_eyes_front[] = {
#include "actors/luigi/custom_luigi_eyes_center.rgba16.inc.c"
};
ALIGNED8 static const u8 luigi_texture_eyes_half_closed[] = {
ALIGNED8 const Texture luigi_texture_eyes_half_closed[] = {
#include "actors/luigi/custom_luigi_eyes_half_closed.rgba16.inc.c"
};
ALIGNED8 static const u8 luigi_texture_eyes_closed[] = {
ALIGNED8 const Texture luigi_texture_eyes_closed[] = {
#include "actors/luigi/custom_luigi_eyes_closed.rgba16.inc.c"
};
ALIGNED8 static const u8 luigi_texture_eyes_right[] = {
#include "actors/mario/mario_eyes_left_unused.rgba16.inc.c"
};
ALIGNED8 static const u8 luigi_texture_eyes_left[] = {
#include "actors/mario/mario_eyes_right_unused.rgba16.inc.c"
};
ALIGNED8 static const u8 luigi_texture_eyes_up[] = {
#include "actors/mario/mario_eyes_up_unused.rgba16.inc.c"
};
ALIGNED8 static const u8 luigi_texture_eyes_down[] = {
#include "actors/mario/mario_eyes_down_unused.rgba16.inc.c"
};
ALIGNED8 static const u8 luigi_texture_eyes_dead[] = {
#include "actors/mario/mario_eyes_dead.rgba16.inc.c"
};
ALIGNED8 static const u8 luigi_texture_wings_half_1[] = {
#include "actors/mario/mario_wing.rgba16.inc.c"
};
ALIGNED8 static const u8 luigi_texture_wings_half_2[] = {
#include "actors/mario/mario_wing_tip.rgba16.inc.c"
};
ALIGNED8 static const u8 luigi_texture_metal_wings_half_1[] = {
#include "actors/mario/mario_metal_wing_unused.rgba16.inc.c"
};
ALIGNED8 static const u8 luigi_texture_metal_wings_half_2[] = {
#include "actors/mario/mario_metal_wing_tip_unused.rgba16.inc.c"
};
static const Vtx luigi_butt_dl_vertex[76] = {
{{{-7, -65, 43},0, {0, 0},{0xDA, 0x94, 0x38, 0xFF}}},
{{{-13, -71, 0},0, {0, 0},{0xD4, 0x89, 0x0, 0xFF}}},

View file

@ -23,37 +23,18 @@ static const Lights1 luigi_cap_seg3_lights_white = gdSPDefLights1(
0xff, 0xff, 0xff, 0x28, 0x28, 0x28
);
// 0x0301CF50
ALIGNED8 static const u8 luigi_cap_seg3_texture_0301CF50[] = {
#include "actors/mario_cap/mario_cap_metal.rgba16.inc.c"
};
#include "actors/mario_cap/mario_cap_externs.h"
#define luigi_cap_seg3_texture_0301CF50 mario_cap_seg3_texture_0301CF50
#define luigi_cap_seg3_texture_0301E750 mario_cap_seg3_texture_0301E750
#define luigi_cap_seg3_texture_0301F750 mario_cap_seg3_texture_0301F750
#define luigi_cap_seg3_texture_03020750 mario_cap_seg3_texture_03020750
#define luigi_cap_seg3_texture_03021750 mario_cap_seg3_texture_03021750
// 0x0301DF50
ALIGNED8 static const u8 luigi_cap_seg3_texture_0301DF50[] = {
ALIGNED8 const Texture luigi_cap_seg3_texture_0301DF50[] = {
#include "actors/luigi_cap/custom_luigi_cap_logo.rgba16.inc.c"
};
// 0x0301E750
ALIGNED8 static const u8 luigi_cap_seg3_texture_0301E750[] = {
#include "actors/mario_cap/mario_cap_wing.rgba16.inc.c"
};
// 0x0301F750
ALIGNED8 static const u8 luigi_cap_seg3_texture_0301F750[] = {
#include "actors/mario_cap/mario_cap_wing_tip.rgba16.inc.c"
};
// 0x03020750
ALIGNED8 static const u8 luigi_cap_seg3_texture_03020750[] = {
#include "actors/mario_cap/mario_cap_metal_wing_unused.rgba16.inc.c"
};
// 0x03021750
ALIGNED8 static const u8 luigi_cap_seg3_texture_03021750[] = {
#include "actors/mario_cap/mario_cap_metal_wing_tip_unused.rgba16.inc.c"
};
// 0x03022750
static const Vtx luigi_cap_seg3_vertex_03022750[] = {
{{{ 33, 35, 118}, 0, { 728, 758}, {0x30, 0x26, 0x6e, 0xff}}},

View file

@ -0,0 +1,19 @@
extern ALIGNED8 const Texture mario_texture_metal[];
extern ALIGNED8 const Texture mario_texture_yellow_button[];
extern ALIGNED8 const Texture mario_texture_m_logo[];
extern ALIGNED8 const Texture mario_texture_hair_sideburn[];
extern ALIGNED8 const Texture mario_texture_mustache[];
extern ALIGNED8 const Texture mario_texture_eyes_front[];
extern ALIGNED8 const Texture mario_texture_eyes_half_closed[];
extern ALIGNED8 const Texture mario_texture_eyes_closed[];
extern ALIGNED8 const Texture mario_texture_eyes_closed_unused1[];
extern ALIGNED8 const Texture mario_texture_eyes_closed_unused2[];
extern ALIGNED8 const Texture mario_texture_eyes_right[];
extern ALIGNED8 const Texture mario_texture_eyes_left[];
extern ALIGNED8 const Texture mario_texture_eyes_up[];
extern ALIGNED8 const Texture mario_texture_eyes_down[];
extern ALIGNED8 const Texture mario_texture_eyes_dead[];
extern ALIGNED8 const Texture mario_texture_wings_half_1[];
extern ALIGNED8 const Texture mario_texture_wings_half_2[];
extern ALIGNED8 const Texture mario_texture_metal_wings_half_1[];
extern ALIGNED8 const Texture mario_texture_metal_wings_half_2[];

View file

@ -37,99 +37,99 @@ static const Lights1 mario_brown2_lights_group = gdSPDefLights1(
);
// 0x04000090
ALIGNED8 const u8 mario_texture_metal[] = {
ALIGNED8 const Texture mario_texture_metal[] = {
#include "actors/mario/mario_metal.rgba16.inc.c"
};
// 0x04001090
ALIGNED8 const u8 mario_texture_yellow_button[] = {
ALIGNED8 const Texture mario_texture_yellow_button[] = {
#include "actors/mario/mario_overalls_button.rgba16.inc.c"
};
// 0x04001890
ALIGNED8 const u8 mario_texture_m_logo[] = {
ALIGNED8 const Texture mario_texture_m_logo[] = {
#include "actors/mario/custom_mario_logo.rgba16.inc.c"
};
// 0x04002090
ALIGNED8 const u8 mario_texture_hair_sideburn[] = {
ALIGNED8 const Texture mario_texture_hair_sideburn[] = {
#include "actors/mario/mario_sideburn.rgba16.inc.c"
};
// 0x04002890
ALIGNED8 const u8 mario_texture_mustache[] = {
ALIGNED8 const Texture mario_texture_mustache[] = {
#include "actors/mario/mario_mustache.rgba16.inc.c"
};
// 0x04003090
ALIGNED8 const u8 mario_texture_eyes_front[] = {
ALIGNED8 const Texture mario_texture_eyes_front[] = {
#include "actors/mario/mario_eyes_center.rgba16.inc.c"
};
// 0x04003890
ALIGNED8 const u8 mario_texture_eyes_half_closed[] = {
ALIGNED8 const Texture mario_texture_eyes_half_closed[] = {
#include "actors/mario/mario_eyes_half_closed.rgba16.inc.c"
};
// 0x04004090
ALIGNED8 const u8 mario_texture_eyes_closed[] = {
ALIGNED8 const Texture mario_texture_eyes_closed[] = {
#include "actors/mario/mario_eyes_closed.rgba16.inc.c"
};
// Unreferenced
// 0x04004890
ALIGNED8 const u8 mario_texture_eyes_closed_unused1[] = {
ALIGNED8 const Texture mario_texture_eyes_closed_unused1[] = {
#include "actors/mario/mario_eyes_closed_unused_0.rgba16.inc.c"
};
// Unreferenced
// 0x04005090
ALIGNED8 const u8 mario_texture_eyes_closed_unused2[] = {
ALIGNED8 const Texture mario_texture_eyes_closed_unused2[] = {
#include "actors/mario/mario_eyes_closed_unused_1.rgba16.inc.c"
};
// 0x04005890
ALIGNED8 const u8 mario_texture_eyes_right[] = {
ALIGNED8 const Texture mario_texture_eyes_right[] = {
#include "actors/mario/mario_eyes_left_unused.rgba16.inc.c"
};
// 0x04006090
ALIGNED8 const u8 mario_texture_eyes_left[] = {
ALIGNED8 const Texture mario_texture_eyes_left[] = {
#include "actors/mario/mario_eyes_right_unused.rgba16.inc.c"
};
// 0x04006890
ALIGNED8 const u8 mario_texture_eyes_up[] = {
ALIGNED8 const Texture mario_texture_eyes_up[] = {
#include "actors/mario/mario_eyes_up_unused.rgba16.inc.c"
};
// 0x04007090
ALIGNED8 const u8 mario_texture_eyes_down[] = {
ALIGNED8 const Texture mario_texture_eyes_down[] = {
#include "actors/mario/mario_eyes_down_unused.rgba16.inc.c"
};
// 0x04007890
ALIGNED8 const u8 mario_texture_eyes_dead[] = {
ALIGNED8 const Texture mario_texture_eyes_dead[] = {
#include "actors/mario/mario_eyes_dead.rgba16.inc.c"
};
// 0x04008090
ALIGNED8 const u8 mario_texture_wings_half_1[] = {
ALIGNED8 const Texture mario_texture_wings_half_1[] = {
#include "actors/mario/mario_wing.rgba16.inc.c"
};
// 0x04009090
ALIGNED8 const u8 mario_texture_wings_half_2[] = {
ALIGNED8 const Texture mario_texture_wings_half_2[] = {
#include "actors/mario/mario_wing_tip.rgba16.inc.c"
};
// 0x0400A090
ALIGNED8 const u8 mario_texture_metal_wings_half_1[] = {
ALIGNED8 const Texture mario_texture_metal_wings_half_1[] = {
#include "actors/mario/mario_metal_wing_unused.rgba16.inc.c"
};
// 0x0400B090
ALIGNED8 const u8 mario_texture_metal_wings_half_2[] = {
ALIGNED8 const Texture mario_texture_metal_wings_half_2[] = {
#include "actors/mario/mario_metal_wing_tip_unused.rgba16.inc.c"
};

View file

@ -0,0 +1,6 @@
extern ALIGNED8 const Texture mario_cap_seg3_texture_0301CF50[];
extern ALIGNED8 const Texture mario_cap_seg3_texture_0301DF50[];
extern ALIGNED8 const Texture mario_cap_seg3_texture_0301E750[];
extern ALIGNED8 const Texture mario_cap_seg3_texture_0301F750[];
extern ALIGNED8 const Texture mario_cap_seg3_texture_03020750[];
extern ALIGNED8 const Texture mario_cap_seg3_texture_03021750[];

View file

@ -19,32 +19,32 @@ static const Lights1 mario_cap_seg3_lights_0301CF38 = gdSPDefLights1(
);
// 0x0301CF50
ALIGNED8 static const u8 mario_cap_seg3_texture_0301CF50[] = {
ALIGNED8 const Texture mario_cap_seg3_texture_0301CF50[] = {
#include "actors/mario_cap/mario_cap_metal.rgba16.inc.c"
};
// 0x0301DF50
ALIGNED8 static const u8 mario_cap_seg3_texture_0301DF50[] = {
ALIGNED8 const Texture mario_cap_seg3_texture_0301DF50[] = {
#include "actors/mario_cap/custom_mario_cap_logo.rgba16.inc.c"
};
// 0x0301E750
ALIGNED8 static const u8 mario_cap_seg3_texture_0301E750[] = {
ALIGNED8 const Texture mario_cap_seg3_texture_0301E750[] = {
#include "actors/mario_cap/mario_cap_wing.rgba16.inc.c"
};
// 0x0301F750
ALIGNED8 static const u8 mario_cap_seg3_texture_0301F750[] = {
ALIGNED8 const Texture mario_cap_seg3_texture_0301F750[] = {
#include "actors/mario_cap/mario_cap_wing_tip.rgba16.inc.c"
};
// 0x03020750
ALIGNED8 static const u8 mario_cap_seg3_texture_03020750[] = {
ALIGNED8 const Texture mario_cap_seg3_texture_03020750[] = {
#include "actors/mario_cap/mario_cap_metal_wing_unused.rgba16.inc.c"
};
// 0x03021750
ALIGNED8 static const u8 mario_cap_seg3_texture_03021750[] = {
ALIGNED8 const Texture mario_cap_seg3_texture_03021750[] = {
#include "actors/mario_cap/mario_cap_metal_wing_tip_unused.rgba16.inc.c"
};

View file

@ -1,16 +1,21 @@
// Toad player
#include "actors/mario/mario_externs.h"
#define toad_player_texture_metal mario_texture_metal
#define toad_player_texture_wings_half_1 mario_texture_wings_half_1
#define toad_player_texture_wings_half_2 mario_texture_wings_half_2
#define toad_player_texture_metal_wings_half_1 mario_texture_metal_wings_half_1
#define toad_player_texture_metal_wings_half_2 mario_texture_metal_wings_half_2
///////////
// metal //
///////////
static const Lights1 toad_player_lights_white = gdSPDefLights1(
0x7f, 0x7f, 0x7f,
0xff, 0xff, 0xff, 0x28, 0x28, 0x28
);
ALIGNED8 static const u8 toad_player_texture_metal[] = {
#include "actors/mario/mario_metal.rgba16.inc.c"
};
const Gfx toad_player_metal_start[] = {
gsDPPipeSync(),
gsSPSetGeometryMode(G_TEXTURE_GEN),
@ -40,19 +45,19 @@ static const Lights1 toad_player_lights_face = gdSPDefLights1(
0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0x28, 0x28, 0x28
);
ALIGNED8 static const u8 toad_player_texture_face[] = {
ALIGNED8 const Texture toad_player_texture_face[] = {
#include "actors/toad_player/custom_toad_face.rgba16.inc.c"
};
ALIGNED8 static const u8 toad_player_texture_eyes_closed[] = {
ALIGNED8 const Texture toad_player_texture_eyes_closed[] = {
#include "actors/toad_player/custom_toad_eyes_closed.rgba16.inc.c"
};
ALIGNED8 static const u8 toad_player_texture_eyes_half_closed[] = {
ALIGNED8 const Texture toad_player_texture_eyes_half_closed[] = {
#include "actors/toad_player/custom_toad_eyes_half_closed.rgba16.inc.c"
};
ALIGNED8 static const u8 toad_player_texture_eyes_dead[] = {
ALIGNED8 const Texture toad_player_texture_eyes_dead[] = {
#include "actors/toad_player/custom_toad_eyes_dead.rgba16.inc.c"
};
@ -374,7 +379,7 @@ const Gfx toad_player_dl_eyes_dead[] = {
// hair //
//////////
ALIGNED8 static const u8 toad_player_texture_hair[] = {
ALIGNED8 const Texture toad_player_texture_hair[] = {
#include "actors/toad_player/custom_toad_hair.rgba16.inc.c"
};
@ -413,7 +418,7 @@ const Gfx toad_player_dl_hair[] = {
// cap //
/////////
ALIGNED8 static const u8 toad_player_texture_cap[] = {
ALIGNED8 const Texture toad_player_texture_cap[] = {
#include "actors/toad_player/custom_toad_cap.rgba16.inc.c"
};
@ -819,22 +824,6 @@ static const Lights1 toad_player_lights_wings = gdSPDefLights1(
0xff, 0xff, 0xff, 0x28, 0x28, 0x28
);
ALIGNED8 static const u8 toad_player_texture_wings_half_1[] = {
#include "actors/mario/mario_wing.rgba16.inc.c"
};
ALIGNED8 static const u8 toad_player_texture_wings_half_2[] = {
#include "actors/mario/mario_wing_tip.rgba16.inc.c"
};
ALIGNED8 static const u8 toad_player_texture_metal_wings_half_1[] = {
#include "actors/mario/mario_metal_wing_unused.rgba16.inc.c"
};
ALIGNED8 static const u8 toad_player_texture_metal_wings_half_2[] = {
#include "actors/mario/mario_metal_wing_tip_unused.rgba16.inc.c"
};
static const Vtx toad_player_vertex_wings_half_1[] = {
{{{ -105, 212, 0}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ -105, 0, 0}, 0, { 0, 2012}, {0x00, 0x00, 0x7f, 0xff}}},

View file

@ -68,18 +68,18 @@ extern Lights1 waluigi_face_2___eye_closed_v3_lights;
extern Lights1 waluigi_face_7___eye_X_v3_lights;
extern Lights1 waluigi_gloves_v3_lights;
extern Lights1 waluigi_shoes_v3_lights;
extern u8 waluigi_mario_button_rgba16[];
extern u8 waluigi_metal_rgba16[];
extern u8 waluigi_custom_waluigi_cap_rgba16[];
extern u8 waluigi_waluigi_eyes0_rgba16[];
extern u8 waluigi_mario_sideburn_rgba16[];
extern u8 waluigi_waluigi_mouth_rgba16[];
extern u8 waluigi_waluigi_eyes1_rgba16[];
extern u8 waluigi_waluigi_eyes2_rgba16[];
extern u8 waluigi_waluigi_eyes3_rgba16[];
extern u8 waluigi_wing_2_rgba16[];
extern u8 waluigi_wing1_rgba16[];
extern u8 waluigi_waluigi_glove_rgba16[];
extern ALIGNED8 const Texture waluigi_mario_button_rgba16[];
extern ALIGNED8 const Texture waluigi_metal_rgba16[];
extern ALIGNED8 const Texture waluigi_custom_waluigi_cap_rgba16[];
extern ALIGNED8 const Texture waluigi_waluigi_eyes0_rgba16[];
extern ALIGNED8 const Texture waluigi_mario_sideburn_rgba16[];
extern ALIGNED8 const Texture waluigi_waluigi_mouth_rgba16[];
extern ALIGNED8 const Texture waluigi_waluigi_eyes1_rgba16[];
extern ALIGNED8 const Texture waluigi_waluigi_eyes2_rgba16[];
extern ALIGNED8 const Texture waluigi_waluigi_eyes3_rgba16[];
extern ALIGNED8 const Texture waluigi_wing_2_rgba16[];
extern ALIGNED8 const Texture waluigi_wing1_rgba16[];
extern ALIGNED8 const Texture waluigi_waluigi_glove_rgba16[];
extern Vtx waluigi_000_offset_mesh_layer_1_vtx_0[76];
extern Gfx waluigi_000_offset_mesh_layer_1_tri_0[];
extern Vtx waluigi_000_offset_001_mesh_layer_1_vtx_0[118];

View file

@ -54,63 +54,54 @@ Lights1 waluigi_shoes_v3_lights = gdSPDefLights1(
0x7D, 0x3D, 0x0,
0xFB, 0x7A, 0x0, 0x28, 0x28, 0x28);
Gfx waluigi_mario_button_rgba16_aligner[] = {gsSPEndDisplayList()};
u8 waluigi_mario_button_rgba16[] = {
#include "actors/mario/mario_overalls_button.rgba16.inc.c"
};
#include "actors/mario/mario_externs.h"
#define waluigi_metal_rgba16 mario_texture_metal
#define waluigi_mario_button_rgba16 mario_texture_yellow_button
#define waluigi_mario_sideburn_rgba16 mario_texture_hair_sideburn
#define waluigi_wing1_rgba16 mario_texture_wings_half_1
#define waluigi_wing_2_rgba16 mario_texture_wings_half_2
Gfx waluigi_mario_button_rgba16_aligner[] = {gsSPEndDisplayList()};
Gfx waluigi_metal_rgba16_aligner[] = {gsSPEndDisplayList()};
u8 waluigi_metal_rgba16[] = {
#include "actors/mario/mario_metal.rgba16.inc.c"
};
Gfx waluigi_custom_waluigi_cap_rgba16_aligner[] = {gsSPEndDisplayList()};
u8 waluigi_custom_waluigi_cap_rgba16[] = {
ALIGNED8 const Texture waluigi_custom_waluigi_cap_rgba16[] = {
#include "actors/waluigi/custom_waluigi_cap.rgba16.inc.c"
};
Gfx waluigi_waluigi_eyes0_rgba16_aligner[] = {gsSPEndDisplayList()};
u8 waluigi_waluigi_eyes0_rgba16[] = {
ALIGNED8 const Texture waluigi_waluigi_eyes0_rgba16[] = {
#include "actors/waluigi/custom_waluigi_eyes0.rgba16.inc.c"
};
Gfx waluigi_mario_sideburn_rgba16_aligner[] = {gsSPEndDisplayList()};
u8 waluigi_mario_sideburn_rgba16[] = {
#include "actors/mario/mario_sideburn.rgba16.inc.c"
};
Gfx waluigi_waluigi_mouth_rgba16_aligner[] = {gsSPEndDisplayList()};
u8 waluigi_waluigi_mouth_rgba16[] = {
ALIGNED8 const Texture waluigi_waluigi_mouth_rgba16[] = {
#include "actors/waluigi/custom_waluigi_mouth.rgba16.inc.c"
};
Gfx waluigi_waluigi_eyes1_rgba16_aligner[] = {gsSPEndDisplayList()};
u8 waluigi_waluigi_eyes1_rgba16[] = {
ALIGNED8 const Texture waluigi_waluigi_eyes1_rgba16[] = {
#include "actors/waluigi/custom_waluigi_eyes1.rgba16.inc.c"
};
Gfx waluigi_waluigi_eyes2_rgba16_aligner[] = {gsSPEndDisplayList()};
u8 waluigi_waluigi_eyes2_rgba16[] = {
ALIGNED8 const Texture waluigi_waluigi_eyes2_rgba16[] = {
#include "actors/waluigi/custom_waluigi_eyes2.rgba16.inc.c"
};
Gfx waluigi_waluigi_eyes3_rgba16_aligner[] = {gsSPEndDisplayList()};
u8 waluigi_waluigi_eyes3_rgba16[] = {
ALIGNED8 const Texture waluigi_waluigi_eyes3_rgba16[] = {
#include "actors/waluigi/custom_waluigi_eyes3.rgba16.inc.c"
};
Gfx waluigi_wing_2_rgba16_aligner[] = {gsSPEndDisplayList()};
u8 waluigi_wing_2_rgba16[] = {
#include "actors/mario/mario_wing_tip.rgba16.inc.c"
};
Gfx waluigi_wing1_rgba16_aligner[] = {gsSPEndDisplayList()};
u8 waluigi_wing1_rgba16[] = {
#include "actors/mario/mario_wing.rgba16.inc.c"
};
Gfx waluigi_waluigi_glove_rgba16_aligner[] = {gsSPEndDisplayList()};
u8 waluigi_waluigi_glove_rgba16[] = {
ALIGNED8 const Texture waluigi_waluigi_glove_rgba16[] = {
#include "actors/waluigi/custom_waluigi_glove.rgba16.inc.c"
};

View file

@ -18,36 +18,18 @@ static const Lights1 waluigi_cap_seg3_lights_0301CF38 = gdSPDefLights1(
0xff, 0x00, 0x00, 0x28, 0x28, 0x28
);
// 0x0301CF50
ALIGNED8 static const u8 waluigi_cap_seg3_texture_0301CF50[] = {
#include "actors/mario/mario_metal.rgba16.inc.c"
};
#include "actors/mario_cap/mario_cap_externs.h"
#define waluigi_cap_seg3_texture_0301CF50 mario_cap_seg3_texture_0301CF50
#define waluigi_cap_seg3_texture_0301E750 mario_cap_seg3_texture_0301E750
#define waluigi_cap_seg3_texture_0301F750 mario_cap_seg3_texture_0301F750
#define waluigi_cap_seg3_texture_03020750 mario_cap_seg3_texture_03020750
#define waluigi_cap_seg3_texture_03021750 mario_cap_seg3_texture_03021750
// 0x0301DF50
ALIGNED8 static const u8 waluigi_cap_seg3_texture_0301DF50[] = {
ALIGNED8 const Texture waluigi_cap_seg3_texture_0301DF50[] = {
#include "actors/waluigi/custom_waluigi_cap.rgba16.inc.c"
};
// 0x0301E750
ALIGNED8 static const u8 waluigi_cap_seg3_texture_0301E750[] = {
#include "actors/mario/mario_wing.rgba16.inc.c"
};
// 0x0301F750
ALIGNED8 static const u8 waluigi_cap_seg3_texture_0301F750[] = {
#include "actors/mario/mario_wing_tip.rgba16.inc.c"
};
// 0x03020750
ALIGNED8 static const u8 waluigi_cap_seg3_texture_03020750[] = {
#include "actors/mario/mario_metal_wing_unused.rgba16.inc.c"
};
// 0x03021750
ALIGNED8 static const u8 waluigi_cap_seg3_texture_03021750[] = {
#include "actors/mario/mario_metal_wing_tip_unused.rgba16.inc.c"
};
// 0x03022750
static const Vtx waluigi_cap_seg3_vertex_03022750[] = {
{{{ 33, 35, 118}, 0, { 728, 758}, {0x30, 0x26, 0x6e, 0xff}}},

View file

@ -38,74 +38,61 @@ static const Lights1 wario_pink_lights_group = gdSPDefLights1(
0xFF, 0x6F, 0xAF, 0x28, 0x28, 0x28
);
ALIGNED8 static const u8 wario_texture_metal[] = {
#include "actors/mario/mario_metal.rgba16.inc.c"
};
#include "actors/mario/mario_externs.h"
#define wario_texture_metal mario_texture_metal
#define wario_texture_wings_half_1 mario_texture_wings_half_1
#define wario_texture_wings_half_2 mario_texture_wings_half_2
#define wario_texture_metal_wings_half_1 mario_texture_metal_wings_half_1
#define wario_texture_metal_wings_half_2 mario_texture_metal_wings_half_2
ALIGNED8 static const u8 wario_texture_white_button[] = {
ALIGNED8 const Texture wario_texture_white_button[] = {
#include "actors/wario/custom_wario_overalls_button.rgba16.inc.c"
};
ALIGNED8 static const u8 wario_texture_w_logo[] = {
ALIGNED8 const Texture wario_texture_w_logo[] = {
#include "actors/wario/custom_wario_logo.rgba16.inc.c"
};
ALIGNED8 static const u8 wario_texture_hair_sideburn[] = {
ALIGNED8 const Texture wario_texture_hair_sideburn[] = {
#include "actors/wario/custom_wario_sideburn.rgba16.inc.c"
};
ALIGNED8 static const u8 wario_texture_mouth[] = {
ALIGNED8 const Texture wario_texture_mouth[] = {
#include "actors/wario/custom_wario_mouth.rgba16.inc.c"
};
ALIGNED8 static const u8 wario_texture_eyes_front[] = {
ALIGNED8 const Texture wario_texture_eyes_front[] = {
#include "actors/wario/custom_wario_eyes_center.rgba16.inc.c"
};
ALIGNED8 static const u8 wario_texture_eyes_half_closed[] = {
ALIGNED8 const Texture wario_texture_eyes_half_closed[] = {
#include "actors/wario/custom_wario_eyes_half_closed.rgba16.inc.c"
};
ALIGNED8 static const u8 wario_texture_eyes_closed[] = {
ALIGNED8 const Texture wario_texture_eyes_closed[] = {
#include "actors/wario/custom_wario_eyes_closed.rgba16.inc.c"
};
ALIGNED8 static const u8 wario_texture_eyes_right[] = {
ALIGNED8 const Texture wario_texture_eyes_right[] = {
#include "actors/wario/custom_wario_eyes_left_unused.rgba16.inc.c"
};
ALIGNED8 static const u8 wario_texture_eyes_left[] = {
ALIGNED8 const Texture wario_texture_eyes_left[] = {
#include "actors/wario/custom_wario_eyes_right_unused.rgba16.inc.c"
};
ALIGNED8 static const u8 wario_texture_eyes_up[] = {
ALIGNED8 const Texture wario_texture_eyes_up[] = {
#include "actors/wario/custom_wario_eyes_up_unused.rgba16.inc.c"
};
ALIGNED8 static const u8 wario_texture_eyes_down[] = {
ALIGNED8 const Texture wario_texture_eyes_down[] = {
#include "actors/wario/custom_wario_eyes_down_unused.rgba16.inc.c"
};
ALIGNED8 static const u8 wario_texture_eyes_dead[] = {
ALIGNED8 const Texture wario_texture_eyes_dead[] = {
#include "actors/wario/custom_wario_eyes_dead.rgba16.inc.c"
};
ALIGNED8 static const u8 wario_texture_wings_half_1[] = {
#include "actors/mario/mario_wing.rgba16.inc.c"
};
ALIGNED8 static const u8 wario_texture_wings_half_2[] = {
#include "actors/mario/mario_wing_tip.rgba16.inc.c"
};
ALIGNED8 static const u8 wario_texture_metal_wings_half_1[] = {
#include "actors/mario/mario_metal_wing_unused.rgba16.inc.c"
};
ALIGNED8 static const u8 wario_texture_metal_wings_half_2[] = {
#include "actors/mario/mario_metal_wing_tip_unused.rgba16.inc.c"
};
Vtx wario_000_offset_pelvis_mesh_layer_1_vtx_0[76] = {
{{{73, 17, 0},0, {-16, -16},{0x7F, 0x4, 0x0, 0xFF}}},
{{{46, -95, -54},0, {-16, -16},{0x64, 0xB5, 0xE8, 0xFF}}},

View file

@ -23,37 +23,18 @@ static const Lights1 wario_cap_seg3_lights_white = gdSPDefLights1(
0xff, 0xff, 0xff, 0x28, 0x28, 0x28
);
// 0x0301CF50
ALIGNED8 static const u8 wario_cap_seg3_texture_0301CF50[] = {
#include "actors/mario_cap/mario_cap_metal.rgba16.inc.c"
};
#include "actors/mario_cap/mario_cap_externs.h"
#define wario_cap_seg3_texture_0301CF50 mario_cap_seg3_texture_0301CF50
#define wario_cap_seg3_texture_0301E750 mario_cap_seg3_texture_0301E750
#define wario_cap_seg3_texture_0301F750 mario_cap_seg3_texture_0301F750
#define wario_cap_seg3_texture_03020750 mario_cap_seg3_texture_03020750
#define wario_cap_seg3_texture_03021750 mario_cap_seg3_texture_03021750
// 0x0301DF50
ALIGNED8 static const u8 wario_cap_seg3_texture_0301DF50[] = {
ALIGNED8 const Texture wario_cap_seg3_texture_0301DF50[] = {
#include "actors/wario_cap/custom_wario_cap_logo.rgba16.inc.c"
};
// 0x0301E750
ALIGNED8 static const u8 wario_cap_seg3_texture_0301E750[] = {
#include "actors/mario_cap/mario_cap_wing.rgba16.inc.c"
};
// 0x0301F750
ALIGNED8 static const u8 wario_cap_seg3_texture_0301F750[] = {
#include "actors/mario_cap/mario_cap_wing_tip.rgba16.inc.c"
};
// 0x03020750
ALIGNED8 static const u8 wario_cap_seg3_texture_03020750[] = {
#include "actors/mario_cap/mario_cap_metal_wing_unused.rgba16.inc.c"
};
// 0x03021750
ALIGNED8 static const u8 wario_cap_seg3_texture_03021750[] = {
#include "actors/mario_cap/mario_cap_metal_wing_tip_unused.rgba16.inc.c"
};
// 0x03022750
static const Vtx wario_cap_seg3_vertex_03022750[] = {
{{{ 33, 35, 118}, 0, { 728, 758}, {0x30, 0x26, 0x6e, 0xff}}},

View file

@ -87,6 +87,7 @@ override_disallowed_functions = {
"src/game/camera.h": [ "update_camera", "init_camera", "stub_camera", "^reset_camera", "move_point_along_spline" ],
"src/game/behavior_actions.h": [ "bhv_dust_smoke_loop", "bhv_init_room" ],
"src/pc/lua/utils/smlua_audio_utils.h": [ "smlua_audio_utils_override"],
"src/pc/djui/djui_hud_utils.h": [ "djui_hud_render_texture", "djui_hud_render_texture_raw" ],
}
lua_function_params = {
@ -157,6 +158,8 @@ manual_index_documentation = """
- [network_send_object](#network_send_object)
- [network_send_to](#network_send_to)
- [network_send](#network_send)
- [djui_hud_render_texture](#djui_hud_render_texture)
- [get_texture_info](#get_texture_info)
<br />
@ -283,6 +286,54 @@ The `reliable` field will ensure that the packet arrives, but should be used spa
<br />
## [djui_hud_render_texture](#djui_hud_render_texture)
Renders a texture to the screen.
### Lua Example
`djui_hud_render_texture(texInfo, x, y, scaleW, scaleH)`
### Parameters
| Field | Type |
| ----- | ---- |
| texInfo | [TextureInfo](structs.md#TextureInfo) |
| x | `number` |
| y | `number` |
| scaleW | `number` |
| scaleH | `number` |
### Returns
- None
### C Prototype
`void djui_hud_render_texture(struct TextureInfo* texInfo, f32 x, f32 y, f32 scaleW, f32 scaleH);`
[:arrow_up_small:](#)
<br />
## [get_texture_info](#get_texture_info)
Retrieves a texture by name.
### Lua Example
`get_texture_info(textureName)`
### Parameters
| Field | Type |
| ----- | ---- |
| textureName | `string` |
### Returns
- [TextureInfo](structs.md#TextureInfo)
### C Prototype
`N/A`
[:arrow_up_small:](#)
<br />
"""
############################################################################

View file

@ -3609,16 +3609,6 @@ function djui_hud_render_rect(x, y, width, height)
-- ...
end
--- @param texInfo TextureInfo
--- @param x number
--- @param y number
--- @param scaleW number
--- @param scaleH number
--- @return nil
function djui_hud_render_texture(texInfo, x, y, scaleW, scaleH)
-- ...
end
--- @param r integer
--- @param g integer
--- @param b integer

View file

@ -10,22 +10,22 @@ UNUSED static const u64 effect_unused_0 = 0;
// Flower (Unused)
// 0x0B000008
ALIGNED8 static const Texture effect_0B000008[] = {
ALIGNED8 const Texture effect_0B000008[] = {
#include "textures/effect/flower.00008.rgba16.inc.c"
};
// 0x0B000808
ALIGNED8 static const Texture effect_0B000808[] = {
ALIGNED8 const Texture effect_0B000808[] = {
#include "textures/effect/flower.00808.rgba16.inc.c"
};
// 0x0B001008
ALIGNED8 static const Texture effect_0B001008[] = {
ALIGNED8 const Texture effect_0B001008[] = {
#include "textures/effect/flower.01008.rgba16.inc.c"
};
// 0x0B001808
ALIGNED8 static const Texture effect_0B001808[] = {
ALIGNED8 const Texture effect_0B001808[] = {
#include "textures/effect/flower.01808.rgba16.inc.c"
};
@ -41,42 +41,42 @@ const Texture *const flower_bubbles_textures_ptr_0B002008[] = {
// Lava Bubble
// 0x0B002020
ALIGNED8 static const Texture effect_0B002020[] = {
ALIGNED8 const Texture effect_0B002020[] = {
#include "textures/effect/lava_bubble.02020.rgba16.inc.c"
};
// 0x0B002820
ALIGNED8 static const Texture effect_0B002820[] = {
ALIGNED8 const Texture effect_0B002820[] = {
#include "textures/effect/lava_bubble.02820.rgba16.inc.c"
};
// 0x0B003020
ALIGNED8 static const Texture effect_0B003020[] = {
ALIGNED8 const Texture effect_0B003020[] = {
#include "textures/effect/lava_bubble.03020.rgba16.inc.c"
};
// 0x0B003820
ALIGNED8 static const Texture effect_0B003820[] = {
ALIGNED8 const Texture effect_0B003820[] = {
#include "textures/effect/lava_bubble.03820.rgba16.inc.c"
};
// 0x0B004020
ALIGNED8 static const Texture effect_0B004020[] = {
ALIGNED8 const Texture effect_0B004020[] = {
#include "textures/effect/lava_bubble.04020.rgba16.inc.c"
};
// 0x0B004820
ALIGNED8 static const Texture effect_0B004820[] = {
ALIGNED8 const Texture effect_0B004820[] = {
#include "textures/effect/lava_bubble.04820.rgba16.inc.c"
};
// 0x0B005020
ALIGNED8 static const Texture effect_0B005020[] = {
ALIGNED8 const Texture effect_0B005020[] = {
#include "textures/effect/lava_bubble.05020.rgba16.inc.c"
};
// 0x0B005820
ALIGNED8 static const Texture effect_0B005820[] = {
ALIGNED8 const Texture effect_0B005820[] = {
#include "textures/effect/lava_bubble.05820.rgba16.inc.c"
};
@ -96,7 +96,7 @@ const Texture *const lava_bubble_ptr_0B006020[] = {
// Bubble
// 0x0B006048
ALIGNED8 static const Texture effect_0B006048[] = {
ALIGNED8 const Texture effect_0B006048[] = {
#include "textures/effect/bubble.06048.rgba16.inc.c"
};
@ -137,7 +137,7 @@ const Gfx tiny_bubble_dl_0B006AB0[] = {
};
// 0x0B006AD8
ALIGNED8 static const Texture effect_0B006AD8[] = {
ALIGNED8 const Texture effect_0B006AD8[] = {
#include "textures/effect/tiny_bubble.06AD8.rgba16.inc.c"
};

File diff suppressed because it is too large Load diff

View file

@ -72,42 +72,42 @@ const Gfx title_screen_bg_dl_0A000190[] = {
};
// 0x0A0001C0
ALIGNED8 static const Texture title_texture_0A0001C0[] = {
ALIGNED8 const Texture title_texture_0A0001C0[] = {
#include "textures/title_screen_bg/title_screen_bg.001C0.rgba16.inc.c"
};
// 0x0A000E40
ALIGNED8 static const Texture title_texture_0A000E40[] = {
ALIGNED8 const Texture title_texture_0A000E40[] = {
#include "textures/title_screen_bg/title_screen_bg.00E40.rgba16.inc.c"
};
// 0x0A001AC0
ALIGNED8 static const Texture title_texture_0A001AC0[] = {
ALIGNED8 const Texture title_texture_0A001AC0[] = {
#include "textures/title_screen_bg/title_screen_bg.01AC0.rgba16.inc.c"
};
// 0x0A002740
ALIGNED8 static const Texture title_texture_0A002740[] = {
ALIGNED8 const Texture title_texture_0A002740[] = {
#include "textures/title_screen_bg/title_screen_bg.02740.rgba16.inc.c"
};
// 0x0A0033C0
ALIGNED8 static const Texture title_texture_0A0033C0[] = {
ALIGNED8 const Texture title_texture_0A0033C0[] = {
#include "textures/title_screen_bg/title_screen_bg.033C0.rgba16.inc.c"
};
// 0x0A004040
ALIGNED8 static const Texture title_texture_0A004040[] = {
ALIGNED8 const Texture title_texture_0A004040[] = {
#include "textures/title_screen_bg/title_screen_bg.04040.rgba16.inc.c"
};
// 0x0A004CC0
ALIGNED8 static const Texture title_texture_0A004CC0[] = {
ALIGNED8 const Texture title_texture_0A004CC0[] = {
#include "textures/title_screen_bg/title_screen_bg.04CC0.rgba16.inc.c"
};
// 0x0A005940
ALIGNED8 static const Texture title_texture_0A005940[] = {
ALIGNED8 const Texture title_texture_0A005940[] = {
#include "textures/title_screen_bg/title_screen_bg.05940.rgba16.inc.c"
};

View file

@ -38,6 +38,10 @@ const void* dynos_geolayout_get(const char *name);
void dynos_add_collision(const char *filePath, const char* collisionName);
Collision* dynos_collision_get(const char* collisionName);
// -- textures -- //
void dynos_add_texture(const char *filePath, const char* textureName);
bool dynos_texture_get(const char* textureName, struct TextureInfo* outTextureInfo);
// -- movtexqcs -- //
void dynos_movtexqc_register(const char* name, s16 level, s16 area, s16 type);
struct MovtexQuadCollection* dynos_movtexqc_get_from_id(u32 id);

View file

@ -38,6 +38,7 @@ enum {
DATA_TYPE_LIGHT_T,
DATA_TYPE_AMBIENT_T,
DATA_TYPE_TEXTURE_LIST,
DATA_TYPE_TEXTURE_RAW,
DATA_TYPE_UNUSED,
};
@ -457,6 +458,7 @@ struct PackData {
SysPath mPath;
String mDisplayName;
Array<Pair<const char *, GfxData *>> mGfxData;
Array<DataNode<TexData>*> mTextures;
};
typedef Pair<String, const u8 *> Label;
@ -719,6 +721,7 @@ const Collision* DynOS_Builtin_LvlCol_GetFromName(const char* aDataName);
const char* DynOS_Builtin_LvlCol_GetFromData(const Collision* aData);
const Texture* DynOS_Builtin_Tex_GetFromName(const char* aDataName);
const char* DynOS_Builtin_Tex_GetFromData(const Texture* aData);
const char* DynOS_Builtin_Tex_GetNameFromFileName(const char* aDataName);
const void* DynOS_Builtin_Func_GetFromName(const char* aDataName);
const void* DynOS_Builtin_Func_GetFromIndex(s32 aIndex);
s32 DynOS_Builtin_Func_GetIndexFromData(const void* aData);
@ -735,6 +738,8 @@ PackData* DynOS_Pack_Add(const SysPath& aPath);
void DynOS_Pack_Init();
Pair<const char *, GfxData *>* DynOS_Pack_GetActor(PackData* aPackData, const char* aActorName);
void DynOS_Pack_AddActor(PackData* aPackData, const char* aActorName, GfxData* aGfxData);
DataNode<TexData>* DynOS_Pack_GetTex(PackData* aPackData, const char* aTexName);
void DynOS_Pack_AddTex(PackData* aPackData, DataNode<TexData>* aTexData);
//
// Actor Manager
@ -763,6 +768,10 @@ void DynOS_Tex_Invalid(GfxData* aGfxData);
void DynOS_Tex_Update();
u8 *DynOS_Tex_ConvertToRGBA32(const u8 *aData, u64 aLength, s32 aFormat, s32 aSize, const u8 *aPalette);
bool DynOS_Tex_Import(void **aOutput, void *aPtr, s32 aTile, void *aGfxRApi, void **aHashMap, void *aPool, u32 *aPoolPos, u32 aPoolSize);
void DynOS_Tex_Activate(DataNode<TexData>* aNode, bool aCustomTexture);
void DynOS_Tex_Deactivate(DataNode<TexData>* aNode);
void DynOS_Tex_AddCustom(const SysPath &aFilename, const char *aTexName);
bool DynOS_Tex_Get(const char* aTexName, struct TextureInfo* aOutTexInfo);
//
// Lvl Manager
@ -862,8 +871,10 @@ DataNode<u8>* DynOS_Rooms_Load(FILE *aFile, GfxData *aGfxData);
DataNode<TexData>* DynOS_Tex_Parse(GfxData* aGfxData, DataNode<TexData>* aNode);
void DynOS_Tex_Write(FILE* aFile, GfxData* aGfxData, DataNode<TexData> *aNode);
void DynOS_Tex_Load(FILE *aFile, GfxData *aGfxData);
DataNode<TexData>* DynOS_Tex_Load(FILE *aFile, GfxData *aGfxData);
DataNode<TexData>* DynOS_Tex_LoadFromBinary(const SysPath &aPackFolder, const SysPath &aFilename, const char *aTexName, bool aAddToPack);
void DynOS_Tex_ConvertTextureDataToPng(GfxData *aGfxData, TexData* aTexture);
void DynOS_Tex_GeneratePack(const SysPath &aPackFolder, SysPath &aOutputFolder);
DataNode<TexData*>* DynOS_TexList_Parse(GfxData* aGfxData, DataNode<TexData*>* aNode);
void DynOS_TexList_Write(FILE* aFile, GfxData* aGfxData, DataNode<TexData*> *aNode);

View file

@ -8,15 +8,46 @@ extern "C" {
// Utils //
///////////
static TexData* LoadTextureFromFile(GfxData *aGfxData, const String& aFile) {
static bool FileTypeExists(SysPath& aFolder, const char* fileType) {
DIR *_Dir = opendir(aFolder.c_str());
if (!_Dir) { return false; }
int fileTypeLen = strlen(fileType);
struct dirent *_Ent = NULL;
while ((_Ent = readdir(_Dir)) != NULL) {
int nameLen = strlen(_Ent->d_name);
if (nameLen > fileTypeLen && !strcmp(&_Ent->d_name[nameLen - fileTypeLen], fileType)) {
closedir(_Dir);
return true;
}
}
closedir(_Dir);
return false;
}
static TexData* LoadTextureFromFile(GfxData *aGfxData, const char* aFile) {
// Image file
SysPath _Filename = fstring("%s/%s.png", aGfxData->mPackFolder.c_str(), aFile.begin());
SysPath _Filename;
int fileNameLen = strlen(aFile);
if (fileNameLen > 4 && !strcmp(&aFile[fileNameLen - 4], ".png")) {
_Filename = fstring("%s/%s", aGfxData->mPackFolder.c_str(), aFile);
} else {
_Filename = fstring("%s/%s.png", aGfxData->mPackFolder.c_str(), aFile);
}
FILE *_File = fopen(_Filename.c_str(), "rb");
// Check as if we're an Actor.
if (!_File) {
String _TexturePath = aFile.SubString(aFile.Find('/') + 1); // Remove the "actors/"
SysPath _ActorFilename = fstring("%s/%s.png", aGfxData->mPackFolder.c_str(), _TexturePath.begin());
_File = fopen(_ActorFilename.c_str(), "rb");
SysPath _ActorFilename = "";
const char* _SubString = strchr(aFile, '/'); // Remove the "actors/"
if (_SubString && *_SubString) {
_SubString++;
_ActorFilename = fstring("%s/%s.png", aGfxData->mPackFolder.c_str(), _SubString);
_File = fopen(_ActorFilename.c_str(), "rb");
}
// The file does not exist in either spot!
if (!_File) {
PrintError(" ERROR: Unable to open file at \"%s\" or \"%s\"", _Filename.c_str(), _ActorFilename.c_str());
@ -79,7 +110,7 @@ DataNode<TexData>* DynOS_Tex_Parse(GfxData* aGfxData, DataNode<TexData>* aNode)
// Filename
String _Filename = aNode->mTokens[0].SubString(i0 + 9, i1 - i0 - 9);
aNode->mData = LoadTextureFromFile(aGfxData, _Filename);
aNode->mData = LoadTextureFromFile(aGfxData, _Filename.begin());
aNode->mLoadIndex = aGfxData->mLoadIndex++;
return aNode;
}
@ -95,7 +126,7 @@ DataNode<TexData>* DynOS_Tex_Parse(GfxData* aGfxData, DataNode<TexData>* aNode)
// Filename
String _Filename = aNode->mTokens[0].SubString(dq0 + 1, dq1 - dq0 - 1);
aNode->mData = LoadTextureFromFile(aGfxData, _Filename);
aNode->mData = LoadTextureFromFile(aGfxData, _Filename.begin());
aNode->mLoadIndex = aGfxData->mLoadIndex++;
return aNode;
}
@ -129,11 +160,56 @@ void DynOS_Tex_Write(FILE* aFile, GfxData* aGfxData, DataNode<TexData> *aNode) {
aNode->mData->mPngData.Write(aFile);
}
static bool DynOS_Tex_WriteBinary(GfxData* aGfxData, const SysPath &aOutputFilename, String& aName, TexData* aTexData, bool aRawTexture) {
FILE *_File = fopen(aOutputFilename.c_str(), "wb");
if (!_File) {
PrintError(" ERROR: Unable to create file \"%s\"", aOutputFilename.c_str());
return false;
}
if (!aRawTexture) {
// Write png-texture
// Header
WriteBytes<u8>(_File, DATA_TYPE_TEXTURE);
aName.Write(_File);
// Data
aTexData->mPngData.Write(_File);
fclose(_File);
return true;
}
// Write raw-texture
// Header
WriteBytes<u8>(_File, DATA_TYPE_TEXTURE_RAW);
aName.Write(_File);
// load
u8 *_RawData = stbi_load_from_memory(aTexData->mPngData.begin(), aTexData->mPngData.Count(), &aTexData->mRawWidth, &aTexData->mRawHeight, NULL, 4);
aTexData->mRawFormat = G_IM_FMT_RGBA;
aTexData->mRawSize = G_IM_SIZ_32b;
aTexData->mRawData = Array<u8>(_RawData, _RawData + (aTexData->mRawWidth * aTexData->mRawHeight * 4));
free(_RawData);
// Data
WriteBytes<s32>(_File, aTexData->mRawFormat);
WriteBytes<s32>(_File, aTexData->mRawSize);
WriteBytes<s32>(_File, aTexData->mRawWidth);
WriteBytes<s32>(_File, aTexData->mRawHeight);
aTexData->mRawData.Write(_File);
fclose(_File);
return true;
}
/////////////
// Reading //
/////////////
void DynOS_Tex_Load(FILE *aFile, GfxData *aGfxData) {
DataNode<TexData>* DynOS_Tex_Load(FILE *aFile, GfxData *aGfxData) {
DataNode<TexData> *_Node = New<DataNode<TexData>>();
// Name
@ -158,5 +234,152 @@ void DynOS_Tex_Load(FILE *aFile, GfxData *aGfxData) {
}
// Append
aGfxData->mTextures.Add(_Node);
}
if (aGfxData) {
aGfxData->mTextures.Add(_Node);
}
return _Node;
}
DataNode<TexData>* DynOS_Tex_LoadFromBinary(const SysPath &aPackFolder, const SysPath &aFilename, const char *aTexName, bool aAddToPack) {
// Look for pack in cache
PackData* _Pack = DynOS_Pack_GetFromPath(aPackFolder);
// Look for tex in pack
if (_Pack) {
auto _Tex = DynOS_Pack_GetTex(_Pack, aTexName);
if (_Tex != NULL) {
return _Tex;
}
}
// Load data from binary file
DataNode<TexData>* _TexNode = NULL;
FILE *_File = fopen(aFilename.c_str(), "rb");
if (!_File) { return NULL; }
u8 type = ReadBytes<u8>(_File);
if (type == DATA_TYPE_TEXTURE) {
// load png-texture
_TexNode = New<DataNode<TexData>>();
_TexNode->mData = New<TexData>();
_TexNode->mName.Read(_File);
_TexNode->mData->mPngData.Read(_File);
fclose(_File);
if (aAddToPack) {
if (!_Pack) { _Pack = DynOS_Pack_Add(aPackFolder); }
DynOS_Pack_AddTex(_Pack, _TexNode);
}
return _TexNode;
} else if (type != DATA_TYPE_TEXTURE_RAW) {
fclose(_File);
return NULL;
}
// load raw-texture
_TexNode = New<DataNode<TexData>>();
_TexNode->mData = New<TexData>();
_TexNode->mName.Read(_File);
_TexNode->mData->mRawFormat = ReadBytes<s32>(_File);
_TexNode->mData->mRawSize = ReadBytes<s32>(_File);
_TexNode->mData->mRawWidth = ReadBytes<s32>(_File);
_TexNode->mData->mRawHeight = ReadBytes<s32>(_File);
_TexNode->mData->mRawData.Read(_File);
fclose(_File);
if (aAddToPack) {
if (!_Pack) { _Pack = DynOS_Pack_Add(aPackFolder); }
DynOS_Pack_AddTex(_Pack, _TexNode);
}
return _TexNode;
}
//////////////
// Generate //
//////////////
static void DynOS_Tex_GeneratePack_Recursive(const SysPath &aPackFolder, SysPath &aOutputFolder, SysPath& aRelativePath, SysPath& aPrefix, GfxData *aGfxData) {
// skip generation if any .c files exist
if (FileTypeExists(aOutputFolder, ".c")) {
return;
}
SysPath _DirPath = fstring("%s/%s", aPackFolder.c_str(), aRelativePath.c_str());
DIR *_PackDir = opendir(_DirPath.c_str());
if (!_PackDir) { return; }
struct dirent *_PackEnt = NULL;
while ((_PackEnt = readdir(_PackDir)) != NULL) {
// Skip . and ..
if (SysPath(_PackEnt->d_name) == ".") continue;
if (SysPath(_PackEnt->d_name) == "..") continue;
SysPath _Path = fstring("%s/%s", _DirPath.c_str(), _PackEnt->d_name);
// Recurse through subfolders
if (fs_sys_dir_exists(_Path.c_str())) {
SysPath _NextPath = fstring("%s%s/", aRelativePath.c_str(), _PackEnt->d_name);
SysPath _Prefix = fstring("%s.", _PackEnt->d_name);
DynOS_Tex_GeneratePack_Recursive(aPackFolder, aOutputFolder, _NextPath, _Prefix, aGfxData);
continue;
}
// skip files that don't end in '.png'
size_t nameLen = strlen(_PackEnt->d_name);
if (nameLen < 4) continue;
if (strcmp(&_PackEnt->d_name[nameLen - 4], ".png")) {
continue;
}
// read the file
aGfxData->mModelIdentifier++;
TexData* _TexData = LoadTextureFromFile(aGfxData, _Path.c_str());
if (_TexData == NULL) {
PrintError("Error reading texture from file: %s", _Path.c_str());
continue;
}
// write the file
SysPath _RelativePath = fstring("%s%s", aRelativePath.c_str(), _PackEnt->d_name);
String _BaseName;
const char* _OverrideName = DynOS_Builtin_Tex_GetNameFromFileName(_RelativePath.c_str());
if (_OverrideName) {
_BaseName = _OverrideName;
} else {
_BaseName = _PackEnt->d_name;
_BaseName = _BaseName.SubString(0, nameLen - 4);
}
SysPath _OutputPath = fstring("%s/%s.tex", aOutputFolder.c_str(), _BaseName.begin());
// create output dir if it doesn't exist
if (!fs_sys_dir_exists(aOutputFolder.c_str())) {
fs_sys_mkdir(aOutputFolder.c_str());
}
DynOS_Tex_WriteBinary(aGfxData, _OutputPath, _BaseName, _TexData, (_OverrideName != NULL));
}
closedir(_PackDir);
}
void DynOS_Tex_GeneratePack(const SysPath &aPackFolder, SysPath &aOutputFolder) {
Print("---------- Texture pack folder: \"%s\" ----------", aPackFolder.c_str());
// skip generation if any .tex files exist
if (FileTypeExists(aOutputFolder, ".tex")) {
return;
}
GfxData *_GfxData = New<GfxData>();
_GfxData->mModelIdentifier = 0;
SysPath _Empty = "";
DynOS_Tex_GeneratePack_Recursive(aPackFolder, aOutputFolder, _Empty, _Empty, _GfxData);
DynOS_Gfx_Free(_GfxData);
}

View file

@ -107,6 +107,17 @@ Collision* dynos_collision_get(const char* collisionName) {
return DynOS_Col_Get(collisionName);
}
// -- textures -- //
void dynos_add_texture(const char *filePath, const char* textureName) {
SysPath _FilePath = filePath;
DynOS_Tex_AddCustom(_FilePath, textureName);
}
bool dynos_texture_get(const char* textureName, struct TextureInfo* outTextureInfo) {
return DynOS_Tex_Get(textureName, outTextureInfo);
}
// -- movtexqcs -- //
void dynos_movtexqc_register(const char* name, s16 level, s16 area, s16 type) {

View file

@ -19,6 +19,11 @@ void DynOS_Gfx_GeneratePacks(const char* directory) {
if (fs_sys_dir_exists(_ActorPackFolder.c_str())) {
DynOS_Actor_GeneratePack(_ActorPackFolder);
}
SysPath _TexturePackFolder = fstring("%s/%s", directory, dir->d_name);
SysPath _TexturePackOutputFolder = fstring("%s/%s/textures", directory, dir->d_name);
if (fs_sys_dir_exists(_TexturePackFolder.c_str())) {
DynOS_Tex_GeneratePack(_TexturePackFolder, _TexturePackOutputFolder);
}
}
closedir(modsDir);
@ -34,17 +39,22 @@ static void ScanPackBins(SysPath aPackFolder) {
if (SysPath(_PackEnt->d_name) == ".") continue;
if (SysPath(_PackEnt->d_name) == "..") continue;
// Skip non .bin
s32 length = strlen(_PackEnt->d_name);
if (length < 5) { continue; }
if (strncmp(&_PackEnt->d_name[length - 4], ".bin", 4)) { continue; }
String _ActorName = _PackEnt->d_name;
_ActorName[length - 4] = '\0';
SysPath _FileName = fstring("%s/%s", aPackFolder.begin(), _PackEnt->d_name);
s32 length = strlen(_PackEnt->d_name);
DynOS_Actor_LoadFromBinary(aPackFolder, strdup(_ActorName.begin()), _FileName, true);
// check for actors
if (length > 4 && !strncmp(&_PackEnt->d_name[length - 4], ".bin", 4)) {
String _ActorName = _PackEnt->d_name;
_ActorName[length - 4] = '\0';
DynOS_Actor_LoadFromBinary(aPackFolder, strdup(_ActorName.begin()), _FileName, true);
}
// check for textures
if (length > 4 && !strncmp(&_PackEnt->d_name[length - 4], ".tex", 4)) {
String _TexName = _PackEnt->d_name;
_TexName[length - 4] = '\0';
DynOS_Tex_LoadFromBinary(aPackFolder, _FileName, _TexName.begin(), true);
}
}
}
@ -63,6 +73,7 @@ static void ScanPacksFolder(SysPath _DynosPacksFolder) {
if (fs_sys_dir_exists(_PackFolder.c_str())) {
struct PackData* _Pack = DynOS_Pack_Add(_PackFolder);
DynOS_Actor_GeneratePack(_PackFolder);
DynOS_Tex_GeneratePack(_PackFolder, _PackFolder);
ScanPackBins(_PackFolder);
}
}

View file

@ -1070,710 +1070,6 @@ const char* DynOS_Builtin_LvlCol_GetFromData(const Collision* aData) {
MGR_FIND_NAME(sDynosBuiltinLvlCols);
}
//////////////
// Textures //
//////////////
static const void* sDynosBuiltinTexs[] = {
// levels
define_builtin(cave_09000000),
define_builtin(cave_09001000),
define_builtin(cave_09001800),
define_builtin(cave_09002800),
define_builtin(cave_09003000),
define_builtin(cave_09003800),
define_builtin(cave_09004800),
define_builtin(cave_09005800),
define_builtin(cave_09006800),
define_builtin(cave_09007000),
define_builtin(cave_09007800),
define_builtin(cave_09008800),
define_builtin(cave_09009800),
define_builtin(cave_0900A000),
define_builtin(cave_0900A800),
define_builtin(cave_0900B800),
define_builtin(cave_0900C000),
define_builtin(fire_09000000),
define_builtin(fire_09000800),
define_builtin(fire_09001000),
define_builtin(fire_09001800),
define_builtin(fire_09002000),
define_builtin(fire_09002800),
define_builtin(fire_09003000),
define_builtin(fire_09003800),
define_builtin(fire_09004000),
define_builtin(fire_09004800),
define_builtin(fire_09005000),
define_builtin(fire_09005800),
define_builtin(fire_09006000),
define_builtin(fire_09006800),
define_builtin(fire_09007000),
define_builtin(fire_09007800),
define_builtin(fire_09008000),
define_builtin(fire_09008800),
define_builtin(fire_09009000),
define_builtin(fire_09009800),
define_builtin(fire_0900A000),
define_builtin(fire_0900A800),
define_builtin(fire_0900B000),
define_builtin(fire_0900B800),
define_builtin(generic_09000000),
define_builtin(generic_09000800),
define_builtin(generic_09001000),
define_builtin(generic_09001800),
define_builtin(generic_09002000),
define_builtin(generic_09002800),
define_builtin(generic_09003000),
define_builtin(generic_09003800),
define_builtin(generic_09004000),
define_builtin(generic_09004800),
define_builtin(generic_09005000),
define_builtin(generic_09005800),
define_builtin(generic_09006000),
define_builtin(generic_09007000),
define_builtin(generic_09007800),
define_builtin(generic_09008000),
define_builtin(generic_09008800),
define_builtin(generic_09009000),
define_builtin(generic_09009800),
define_builtin(generic_0900A000),
define_builtin(generic_0900A800),
define_builtin(generic_0900B000),
define_builtin(grass_09000000),
define_builtin(grass_09000800),
define_builtin(grass_09001000),
define_builtin(grass_09001800),
define_builtin(grass_09002000),
define_builtin(grass_09002800),
define_builtin(grass_09003000),
define_builtin(grass_09003800),
define_builtin(grass_09004000),
define_builtin(grass_09004800),
define_builtin(grass_09005000),
define_builtin(grass_09005800),
define_builtin(grass_09006000),
define_builtin(grass_09006800),
define_builtin(grass_09007000),
define_builtin(grass_09007800),
define_builtin(grass_09008000),
define_builtin(grass_09008800),
define_builtin(grass_09009000),
define_builtin(grass_09009800),
define_builtin(grass_0900A000),
define_builtin(grass_0900A800),
define_builtin(grass_0900B000),
define_builtin(grass_0900B800),
define_builtin(inside_09000000),
define_builtin(inside_09001000),
define_builtin(inside_09002000),
define_builtin(inside_09003000),
define_builtin(inside_09003800),
define_builtin(inside_09004000),
define_builtin(inside_09004800),
define_builtin(inside_09005000),
define_builtin(inside_09005800),
define_builtin(inside_09006000),
define_builtin(inside_09007000),
define_builtin(inside_09008000),
define_builtin(inside_09008800),
define_builtin(inside_09009000),
define_builtin(inside_0900A000),
define_builtin(inside_0900B000),
define_builtin(inside_0900B800),
define_builtin(machine_09000000),
define_builtin(machine_09000800),
define_builtin(machine_09001000),
define_builtin(machine_09001800),
define_builtin(machine_09002000),
define_builtin(machine_09002800),
define_builtin(machine_09003000),
define_builtin(machine_09003800),
define_builtin(machine_09004000),
define_builtin(machine_09005000),
define_builtin(machine_09005800),
define_builtin(machine_09006000),
define_builtin(machine_09006800),
define_builtin(machine_09007000),
define_builtin(machine_09007800),
define_builtin(machine_09008000),
define_builtin(machine_09008400),
define_builtin(mountain_09000000),
define_builtin(mountain_09000800),
define_builtin(mountain_09001800),
define_builtin(mountain_09002800),
define_builtin(mountain_09003000),
define_builtin(mountain_09003800),
define_builtin(mountain_09004000),
define_builtin(mountain_09004800),
define_builtin(mountain_09005000),
define_builtin(mountain_09005800),
define_builtin(mountain_09006800),
define_builtin(mountain_09007000),
define_builtin(mountain_09007800),
define_builtin(mountain_09008000),
define_builtin(mountain_09008800),
define_builtin(mountain_09009800),
define_builtin(mountain_0900A000),
define_builtin(mountain_0900A800),
define_builtin(mountain_0900B000),
define_builtin(mountain_0900B800),
define_builtin(mountain_0900C000),
define_builtin(outside_09000000),
define_builtin(outside_09000800),
define_builtin(outside_09001000),
define_builtin(outside_09002000),
define_builtin(outside_09003000),
define_builtin(outside_09003800),
define_builtin(outside_09004000),
define_builtin(outside_09004800),
define_builtin(outside_09005800),
define_builtin(outside_09006000),
define_builtin(outside_09006800),
define_builtin(outside_09007800),
define_builtin(outside_09008000),
define_builtin(outside_09008800),
define_builtin(outside_09009000),
define_builtin(outside_09009800),
define_builtin(outside_0900A000),
define_builtin(outside_0900A800),
define_builtin(outside_0900B000),
define_builtin(outside_0900B400),
define_builtin(outside_0900BC00),
define_builtin(sky_09000000),
define_builtin(sky_09000800),
define_builtin(sky_09001000),
define_builtin(sky_09001800),
define_builtin(sky_09002000),
define_builtin(sky_09003000),
define_builtin(sky_09003800),
define_builtin(sky_09004800),
define_builtin(sky_09005000),
define_builtin(sky_09005800),
define_builtin(sky_09006000),
define_builtin(texture_metal_hole),
define_builtin(sky_09007000),
define_builtin(sky_09007800),
define_builtin(sky_09008000),
define_builtin(snow_09000000),
define_builtin(snow_09000800),
define_builtin(snow_09001000),
define_builtin(snow_09002000),
define_builtin(snow_09002800),
define_builtin(snow_09003000),
define_builtin(snow_09003800),
define_builtin(snow_09004000),
define_builtin(snow_09004800),
define_builtin(snow_09005000),
define_builtin(snow_09005800),
define_builtin(snow_09006000),
define_builtin(snow_09006800),
define_builtin(snow_09007000),
define_builtin(snow_09008000),
define_builtin(snow_09008800),
define_builtin(snow_09009000),
define_builtin(snow_09009800),
define_builtin(spooky_09000000),
define_builtin(spooky_09000800),
define_builtin(spooky_09001800),
define_builtin(spooky_09002800),
define_builtin(spooky_09003800),
define_builtin(spooky_09004800),
define_builtin(spooky_09005000),
define_builtin(spooky_09006000),
define_builtin(spooky_09006800),
define_builtin(spooky_09007000),
define_builtin(spooky_09008000),
define_builtin(spooky_09008800),
define_builtin(spooky_09009000),
define_builtin(spooky_0900A000),
define_builtin(spooky_0900A800),
define_builtin(spooky_0900B000),
define_builtin(spooky_0900B800),
define_builtin(water_09000000),
define_builtin(water_09000800),
define_builtin(water_09001800),
define_builtin(water_09002800),
define_builtin(water_09003800),
define_builtin(water_09004800),
define_builtin(water_09005800),
define_builtin(water_09006000),
define_builtin(water_09006800),
define_builtin(water_09007800),
define_builtin(water_09008800),
define_builtin(water_09009000),
define_builtin(water_0900A000),
define_builtin(water_0900A800),
define_builtin(water_0900B800),
// actors
define_builtin(amp_seg8_texture_08000F18),
define_builtin(amp_seg8_texture_08001318),
define_builtin(amp_seg8_texture_08001B18),
define_builtin(amp_seg8_texture_08002318),
define_builtin(blue_coin_switch_seg8_texture_08000018),
define_builtin(blue_coin_switch_seg8_texture_08000418),
define_builtin(blue_fish_seg3_texture_0301B5E0),
define_builtin(bobomb_seg8_texture_0801DA60),
define_builtin(bobomb_seg8_texture_0801EA60),
define_builtin(bobomb_seg8_texture_0801FA60),
define_builtin(bobomb_seg8_texture_08020A60),
define_builtin(bobomb_seg8_texture_08021A60),
define_builtin(bobomb_seg8_texture_08022260),
define_builtin(bomb_seg6_texture_06057AC0),
define_builtin(bomb_seg6_texture_06058AC0),
define_builtin(bomb_seg6_texture_06059AC0),
define_builtin(boo_seg5_texture_05009B40),
define_builtin(boo_seg5_texture_0500AB40),
define_builtin(boo_castle_seg6_texture_06015670),
define_builtin(boo_castle_seg6_texture_06016670),
define_builtin(book_seg5_texture_05002570),
define_builtin(bookend_seg5_texture_05000060),
define_builtin(bookend_seg5_texture_05000460),
define_builtin(bookend_seg5_texture_05000860),
define_builtin(bookend_seg5_texture_05000C60),
define_builtin(bookend_seg5_texture_05001060),
define_builtin(bowser_seg6_texture_0601F438),
define_builtin(bowser_seg6_texture_0601FC38),
define_builtin(bowser_seg6_texture_06020C38),
define_builtin(bowser_seg6_texture_06021438),
define_builtin(bowser_seg6_texture_06022438),
define_builtin(bowser_seg6_texture_06022C38),
define_builtin(bowser_seg6_texture_06023C38),
define_builtin(bowser_seg6_texture_06024438),
define_builtin(bowser_seg6_texture_06025438),
define_builtin(bowser_seg6_texture_06025C38),
define_builtin(bowser_seg6_texture_06026438),
define_builtin(bowser_seg6_texture_06027438),
define_builtin(bowser_seg6_texture_06028438),
define_builtin(bowser_seg6_texture_06028C38),
define_builtin(bowser_seg6_texture_06029C38),
define_builtin(bowser_seg6_texture_0602AC38),
define_builtin(bowser_seg6_texture_0602BC38),
define_builtin(bowser_seg6_texture_0602CC38),
define_builtin(bowser_seg6_texture_0602DC38),
define_builtin(bowser_seg6_texture_0602EC38),
define_builtin(bowser_seg6_texture_0602FC38),
define_builtin(bowser_seg6_texture_06030C38),
define_builtin(bowser_seg6_texture_06031C38),
define_builtin(bowser_seg6_texture_06032C38),
define_builtin(bowser_seg6_texture_06033C38),
define_builtin(bowser_seg6_texture_06034C38),
define_builtin(bowser_seg6_texture_06035C38),
define_builtin(bowser_seg6_texture_06036C38),
define_builtin(bowser_seg6_texture_06037C38),
define_builtin(flame_seg6_texture_06000000),
define_builtin(flame_seg6_texture_06002000),
define_builtin(flame_seg6_texture_06004000),
define_builtin(flame_seg6_texture_06006000),
define_builtin(flame_seg6_texture_06008000),
define_builtin(flame_seg6_texture_0600A000),
define_builtin(flame_seg6_texture_0600C000),
define_builtin(flame_seg6_texture_0600E000),
define_builtin(flame_seg6_texture_06010000),
define_builtin(flame_seg6_texture_06012000),
define_builtin(flame_seg6_texture_06014000),
define_builtin(flame_seg6_texture_06016000),
define_builtin(flame_seg6_texture_06018000),
define_builtin(flame_seg6_texture_0601A000),
define_builtin(breakable_box_seg8_texture_08011A90),
define_builtin(breakable_box_seg8_texture_08012290),
define_builtin(bub_seg6_texture_0600E2A8),
define_builtin(bub_seg6_texture_0600EAA8),
define_builtin(bub_seg6_texture_0600F2A8),
define_builtin(bub_seg6_texture_060102A8),
define_builtin(bubba_seg5_texture_05000008),
define_builtin(bubba_seg5_texture_05000408),
define_builtin(bubba_seg5_texture_05001408),
define_builtin(bubba_seg5_texture_05001C08),
define_builtin(bubba_seg5_texture_05002408),
define_builtin(bubble_seg4_texture_0401CD60),
define_builtin(bubble_seg4_texture_0401D560),
define_builtin(bullet_bill_seg5_texture_0500BAA8),
define_builtin(bullet_bill_seg5_texture_0500CAA8),
define_builtin(bully_seg5_texture_050000E0),
define_builtin(bully_seg5_texture_05000468),
define_builtin(bully_seg5_texture_05001468),
define_builtin(bully_seg5_texture_05002468),
define_builtin(burn_smoke_seg4_texture_04021800),
define_builtin(butterfly_seg3_texture_030043A8),
define_builtin(cannon_barrel_seg8_texture_080058A8),
define_builtin(cannon_base_seg8_texture_080049B8),
define_builtin(cannon_lid_seg8_texture_08004058),
define_builtin(capswitch_seg5_texture_05001C48),
define_builtin(capswitch_seg5_texture_05002C48),
define_builtin(chain_ball_seg6_texture_06020AE8),
define_builtin(chain_chomp_seg6_texture_060213D0),
define_builtin(chain_chomp_seg6_texture_06021BD0),
define_builtin(chain_chomp_seg6_texture_060223D0),
define_builtin(chain_chomp_seg6_texture_06022BD0),
define_builtin(chain_chomp_seg6_texture_060233D0),
define_builtin(chair_seg5_texture_05003060),
define_builtin(chair_seg5_texture_05003860),
define_builtin(chair_seg5_texture_05004060),
define_builtin(chair_seg5_texture_05004460),
define_builtin(checkerboard_platform_seg8_texture_0800C840),
define_builtin(checkerboard_platform_seg8_texture_0800CC40),
define_builtin(chilly_chief_seg6_texture_06000060),
define_builtin(chilly_chief_seg6_texture_06001060),
define_builtin(chilly_chief_seg6_texture_06002060),
define_builtin(chuckya_seg8_texture_08006778),
define_builtin(chuckya_seg8_texture_08007778),
define_builtin(chuckya_seg8_texture_08007F78),
define_builtin(chuckya_seg8_texture_08008F78),
define_builtin(clam_shell_seg5_texture_05000030),
define_builtin(clam_shell_seg5_texture_05000830),
define_builtin(coin_seg3_texture_03005780),
define_builtin(coin_seg3_texture_03005F80),
define_builtin(coin_seg3_texture_03006780),
define_builtin(coin_seg3_texture_03006F80),
define_builtin(cyan_fish_seg6_texture_0600D468),
define_builtin(dirt_seg3_texture_0302BDF8),
define_builtin(door_seg3_texture_03009D10),
define_builtin(door_seg3_texture_0300AD10),
define_builtin(door_seg3_texture_0300BD10),
define_builtin(door_seg3_texture_0300CD10),
define_builtin(door_seg3_texture_0300D510),
define_builtin(door_seg3_texture_0300E510),
define_builtin(door_seg3_texture_0300ED10),
define_builtin(door_seg3_texture_0300FD10),
define_builtin(door_seg3_texture_03010510),
define_builtin(door_seg3_texture_03011510),
define_builtin(door_seg3_texture_03011D10),
define_builtin(door_seg3_texture_03012510),
define_builtin(door_seg3_texture_03012D10),
define_builtin(door_seg3_texture_03013510),
define_builtin(dorrie_seg6_texture_06009BA0),
define_builtin(dorrie_seg6_texture_06009DA0),
define_builtin(dorrie_seg6_texture_0600ADA0),
define_builtin(exclamation_box_seg8_texture_08012E28),
define_builtin(exclamation_box_seg8_texture_08013628),
define_builtin(exclamation_box_seg8_texture_08014628),
define_builtin(exclamation_box_seg8_texture_08014E28),
define_builtin(exclamation_box_seg8_texture_08015E28),
define_builtin(exclamation_box_seg8_texture_08016628),
define_builtin(exclamation_box_seg8_texture_08017628),
define_builtin(exclamation_box_seg8_texture_08017E28),
define_builtin(exclamation_box_outline_seg8_texture_08025168),
define_builtin(exclamation_box_outline_seg8_texture_08025A80),
define_builtin(explosion_seg3_texture_03000A08),
define_builtin(explosion_seg3_texture_03001208),
define_builtin(explosion_seg3_texture_03001A08),
define_builtin(explosion_seg3_texture_03002208),
define_builtin(explosion_seg3_texture_03002A08),
define_builtin(explosion_seg3_texture_03003208),
define_builtin(explosion_seg3_texture_03003A08),
define_builtin(eyerok_seg5_texture_05008D40),
define_builtin(eyerok_seg5_texture_05009540),
define_builtin(eyerok_seg5_texture_05009D40),
define_builtin(eyerok_seg5_texture_0500A540),
define_builtin(eyerok_seg5_texture_0500AD40),
define_builtin(flame_seg3_texture_03017320),
define_builtin(flame_seg3_texture_03017B20),
define_builtin(flame_seg3_texture_03018320),
define_builtin(flame_seg3_texture_03018B20),
define_builtin(flame_seg3_texture_03019320),
define_builtin(flame_seg3_texture_03019B20),
define_builtin(flame_seg3_texture_0301A320),
define_builtin(flame_seg3_texture_0301AB20),
define_builtin(flyguy_seg8_texture_0800E088),
define_builtin(flyguy_seg8_texture_0800F088),
define_builtin(flyguy_seg8_texture_0800F888),
define_builtin(fwoosh_seg5_texture_05015808),
define_builtin(goomba_seg8_texture_08019530),
define_builtin(goomba_seg8_texture_08019D30),
define_builtin(goomba_seg8_texture_0801A530),
define_builtin(haunted_cage_seg5_texture_0500C288),
define_builtin(haunted_cage_seg5_texture_0500CA88),
define_builtin(haunted_cage_seg5_texture_0500D288),
define_builtin(haunted_cage_seg5_texture_0500D688),
define_builtin(haunted_cage_seg5_texture_0500DA88),
define_builtin(haunted_cage_seg5_texture_0500E288),
define_builtin(heart_seg8_texture_0800D7E0),
define_builtin(heave_ho_seg5_texture_0500E9C8),
define_builtin(heave_ho_seg5_texture_0500F1C8),
define_builtin(heave_ho_seg5_texture_0500F9C8),
define_builtin(heave_ho_seg5_texture_050109C8),
define_builtin(heave_ho_seg5_texture_050111C8),
define_builtin(heave_ho_seg5_texture_050113C8),
define_builtin(hoot_seg5_texture_05000A20),
define_builtin(hoot_seg5_texture_05001E50),
define_builtin(hoot_seg5_texture_05002650),
define_builtin(impact_ring_seg6_texture_0601CA50),
define_builtin(impact_ring_seg6_texture_0601DA50),
define_builtin(king_bobomb_seg5_texture_05000078),
define_builtin(king_bobomb_seg5_texture_05001078),
define_builtin(king_bobomb_seg5_texture_05002078),
define_builtin(king_bobomb_seg5_texture_05002878),
define_builtin(king_bobomb_seg5_texture_05004878),
define_builtin(king_bobomb_seg5_texture_05005878),
define_builtin(king_bobomb_seg5_texture_05006078),
define_builtin(king_bobomb_seg5_texture_05006478),
define_builtin(king_bobomb_seg5_texture_05008478),
define_builtin(king_bobomb_seg5_texture_05009478),
define_builtin(klepto_seg5_texture_05000008),
define_builtin(klepto_seg5_texture_05000808),
define_builtin(klepto_seg5_texture_05001008),
define_builtin(klepto_seg5_texture_05002008),
define_builtin(klepto_seg5_texture_05003008),
define_builtin(koopa_seg6_texture_06002648),
define_builtin(koopa_seg6_texture_06002E48),
define_builtin(koopa_seg6_texture_06003648),
define_builtin(koopa_seg6_texture_06003E48),
define_builtin(koopa_seg6_texture_06004648),
define_builtin(koopa_seg6_texture_06004E48),
define_builtin(koopa_seg6_texture_06005648),
define_builtin(koopa_seg6_texture_06005E48),
define_builtin(koopa_flag_seg6_texture_06000048),
define_builtin(koopa_shell_seg8_texture_080274A0),
define_builtin(koopa_shell_seg8_texture_08027CA0),
define_builtin(lakitu_seg6_texture_06000000),
define_builtin(lakitu_seg6_texture_06000800),
define_builtin(lakitu_seg6_texture_06001800),
define_builtin(lakitu_seg6_texture_06002800),
define_builtin(lakitu_seg6_texture_06003000),
define_builtin(lakitu_seg6_texture_06003800),
define_builtin(lakitu_enemy_seg5_texture_0500ECE0),
define_builtin(lakitu_enemy_seg5_texture_0500F4E0),
define_builtin(lakitu_enemy_seg5_texture_050104E0),
define_builtin(lakitu_enemy_seg5_texture_050114E0),
define_builtin(lakitu_enemy_seg5_texture_05011CE0),
define_builtin(leaves_seg3_texture_0301CBE0),
define_builtin(mad_piano_seg5_texture_05006AF0),
define_builtin(mad_piano_seg5_texture_050072F0),
define_builtin(mad_piano_seg5_texture_050076F0),
define_builtin(mad_piano_seg5_texture_05007AF0),
define_builtin(mad_piano_seg5_texture_05007EF0),
define_builtin(mad_piano_seg5_texture_050082F0),
define_builtin(manta_seg5_texture_050017A0),
define_builtin(manta_seg5_texture_05001FA0),
define_builtin(manta_seg5_texture_05002FA0),
define_builtin(manta_seg5_texture_050037A0),
define_builtin(metal_box_seg8_texture_08023998),
define_builtin(mips_seg6_texture_0600FB80),
define_builtin(mist_seg3_texture_03000080),
define_builtin(moneybag_seg6_texture_060039B0),
define_builtin(moneybag_seg6_texture_060049B0),
define_builtin(monty_mole_seg5_texture_05000970),
define_builtin(monty_mole_seg5_texture_05001170),
define_builtin(monty_mole_seg5_texture_05001970),
define_builtin(monty_mole_seg5_texture_05002170),
define_builtin(monty_mole_seg5_texture_05002970),
define_builtin(monty_mole_hole_seg5_texture_05000040),
define_builtin(mr_i_eyeball_seg6_texture_06000080),
define_builtin(mr_i_eyeball_seg6_texture_06001080),
define_builtin(mr_i_iris_seg6_texture_06002170),
define_builtin(mr_i_iris_seg6_texture_06002970),
define_builtin(mr_i_iris_seg6_texture_06003170),
define_builtin(mr_i_iris_seg6_texture_06003970),
define_builtin(mushroom_1up_seg3_texture_03029628),
define_builtin(peach_seg5_texture_05000A28),
define_builtin(peach_seg5_texture_05001228),
define_builtin(peach_seg5_texture_05001A28),
define_builtin(peach_seg5_texture_05002228),
define_builtin(peach_seg5_texture_05002A28),
define_builtin(peach_seg5_texture_05002C28),
define_builtin(peach_seg5_texture_05002E28),
define_builtin(peach_seg5_texture_05003628),
define_builtin(peach_seg5_texture_05003E28),
define_builtin(peach_seg5_texture_05004028),
define_builtin(pebble_seg3_texture_0301C300),
define_builtin(penguin_seg5_texture_05002DE0),
define_builtin(penguin_seg5_texture_050035E0),
define_builtin(penguin_seg5_texture_05003DE0),
define_builtin(penguin_seg5_texture_050045E0),
define_builtin(penguin_seg5_texture_05004DE0),
define_builtin(penguin_seg5_texture_050055E0),
define_builtin(piranha_plant_seg6_texture_060113F8),
define_builtin(piranha_plant_seg6_texture_060123F8),
define_builtin(piranha_plant_seg6_texture_06012BF8),
define_builtin(piranha_plant_seg6_texture_060133F8),
define_builtin(piranha_plant_seg6_texture_06013BF8),
define_builtin(piranha_plant_seg6_texture_060143F8),
define_builtin(pokey_seg5_texture_05011750),
define_builtin(pokey_seg5_texture_05011F50),
define_builtin(pokey_seg5_texture_05012878),
define_builtin(poundable_pole_seg6_texture_06001050),
define_builtin(poundable_pole_seg6_texture_06001850),
define_builtin(texture_power_meter_left_side),
define_builtin(texture_power_meter_right_side),
define_builtin(texture_power_meter_full),
define_builtin(texture_power_meter_seven_segments),
define_builtin(texture_power_meter_six_segments),
define_builtin(texture_power_meter_five_segments),
define_builtin(texture_power_meter_four_segments),
define_builtin(texture_power_meter_three_segments),
define_builtin(texture_power_meter_two_segments),
define_builtin(texture_power_meter_one_segments),
define_builtin(purple_switch_seg8_texture_0800C0A8),
define_builtin(purple_switch_seg8_texture_0800C128),
define_builtin(sand_seg3_texture_0302BAD0),
define_builtin(scuttlebug_seg6_texture_06010108),
define_builtin(scuttlebug_seg6_texture_06010908),
define_builtin(scuttlebug_seg6_texture_06011908),
define_builtin(scuttlebug_seg6_texture_06012908),
define_builtin(scuttlebug_seg6_texture_06013108),
define_builtin(seaweed_seg6_texture_06007E10),
define_builtin(seaweed_seg6_texture_06008610),
define_builtin(seaweed_seg6_texture_06008E10),
define_builtin(seaweed_seg6_texture_06009610),
define_builtin(skeeter_seg6_texture_06000090),
define_builtin(skeeter_seg6_texture_06000890),
define_builtin(smoke_seg5_texture_050072C0),
define_builtin(snowman_seg5_texture_05008C70),
define_builtin(snowman_seg5_texture_05009470),
define_builtin(snowman_seg5_texture_0500A470),
define_builtin(snowman_seg5_texture_0500B470),
define_builtin(snowman_seg5_texture_0500BC70),
define_builtin(snufit_seg6_texture_060070E0),
define_builtin(snufit_seg6_texture_060078E0),
define_builtin(snufit_seg6_texture_060080E0),
define_builtin(snufit_seg6_texture_060084E0),
define_builtin(sparkles_seg4_texture_04027490),
define_builtin(sparkles_seg4_texture_04027C90),
define_builtin(sparkles_seg4_texture_04028490),
define_builtin(sparkles_seg4_texture_04028C90),
define_builtin(sparkles_seg4_texture_04029490),
define_builtin(sparkles_seg4_texture_04029C90),
define_builtin(sparkles_animation_seg4_texture_04032A88),
define_builtin(sparkles_animation_seg4_texture_04033288),
define_builtin(sparkles_animation_seg4_texture_04033A88),
define_builtin(sparkles_animation_seg4_texture_04034288),
define_builtin(sparkles_animation_seg4_texture_04034A88),
define_builtin(spindrift_seg5_texture_050006D0),
define_builtin(spindrift_seg5_texture_05000ED0),
define_builtin(spindrift_seg5_texture_050016D0),
define_builtin(spindrift_seg5_texture_05001ED0),
define_builtin(springboard_seg5_texture_05000018),
define_builtin(springboard_seg5_texture_05000818),
define_builtin(star_seg3_texture_0302A6F0),
define_builtin(star_seg3_texture_0302AEF0),
define_builtin(stomp_smoke_seg4_texture_04022148),
define_builtin(stomp_smoke_seg4_texture_04022948),
define_builtin(stomp_smoke_seg4_texture_04023148),
define_builtin(stomp_smoke_seg4_texture_04023948),
define_builtin(stomp_smoke_seg4_texture_04024148),
define_builtin(stomp_smoke_seg4_texture_04024948),
define_builtin(sushi_seg5_texture_05008ED0),
define_builtin(sushi_seg5_texture_050096D0),
define_builtin(sushi_seg5_texture_05009AD0),
define_builtin(swoop_seg6_texture_06004270),
define_builtin(swoop_seg6_texture_06004A70),
define_builtin(swoop_seg6_texture_06005270),
define_builtin(swoop_seg6_texture_06005A70),
define_builtin(thwomp_seg5_texture_05009900),
define_builtin(thwomp_seg5_texture_0500A900),
define_builtin(toad_seg6_texture_06005920),
define_builtin(toad_seg6_texture_06006120),
define_builtin(tornado_seg5_texture_05013128),
define_builtin(treasure_chest_seg6_texture_06013FA8),
define_builtin(treasure_chest_seg6_texture_060147A8),
define_builtin(treasure_chest_seg6_texture_06014FA8),
define_builtin(treasure_chest_seg6_texture_060157A8),
define_builtin(tree_seg3_texture_0302DE28),
define_builtin(tree_seg3_texture_0302EE28),
define_builtin(tree_seg3_texture_0302FF60),
define_builtin(tree_seg3_texture_03031048),
define_builtin(tree_seg3_texture_03032218),
define_builtin(ukiki_seg5_texture_05007BC0),
define_builtin(ukiki_seg5_texture_05008BC0),
define_builtin(ukiki_seg5_texture_05009BC0),
define_builtin(ukiki_seg5_texture_0500A3C0),
define_builtin(unagi_seg5_texture_0500AF20),
define_builtin(unagi_seg5_texture_0500B720),
define_builtin(unagi_seg5_texture_0500B920),
define_builtin(unagi_seg5_texture_0500C120),
define_builtin(unagi_seg5_texture_0500C320),
define_builtin(unagi_seg5_texture_0500C3A0),
define_builtin(smoke_seg4_texture_0401DEA0),
define_builtin(smoke_seg4_texture_0401E6A0),
define_builtin(smoke_seg4_texture_0401EEA0),
define_builtin(smoke_seg4_texture_0401F6A0),
define_builtin(smoke_seg4_texture_0401FEA0),
define_builtin(smoke_seg4_texture_040206A0),
define_builtin(smoke_seg4_texture_04020EA0),
define_builtin(warp_pipe_seg3_texture_03007E40),
define_builtin(warp_pipe_seg3_texture_03009168),
define_builtin(water_bubble_seg5_texture_0500FE80),
define_builtin(water_mine_seg6_texture_0600A4F8),
define_builtin(water_mine_seg6_texture_0600B4F8),
define_builtin(water_mine_seg6_texture_0600C4F8),
define_builtin(water_ring_seg6_texture_06012380),
define_builtin(water_splash_seg4_texture_0402A5C8),
define_builtin(water_splash_seg4_texture_0402B5C8),
define_builtin(water_splash_seg4_texture_0402C5C8),
define_builtin(water_splash_seg4_texture_0402D5C8),
define_builtin(water_splash_seg4_texture_0402E5C8),
define_builtin(water_splash_seg4_texture_0402F5C8),
define_builtin(water_splash_seg4_texture_040305C8),
define_builtin(water_splash_seg4_texture_040315C8),
define_builtin(water_wave_seg4_texture_04025358),
define_builtin(water_wave_seg4_texture_04025B58),
define_builtin(water_wave_seg4_texture_04026358),
define_builtin(water_wave_seg4_texture_04026B58),
define_builtin(whirlpool_seg5_texture_05012848),
define_builtin(white_particle_texture),
define_builtin(white_particle_small_texture),
define_builtin(whomp_seg6_texture_0601C360),
define_builtin(whomp_seg6_texture_0601D360),
define_builtin(whomp_seg6_texture_0601E360),
define_builtin(whomp_seg6_texture_0601EB60),
define_builtin(wiggler_seg5_texture_05005A30),
define_builtin(wiggler_seg5_texture_05006A30),
define_builtin(wiggler_seg5_texture_05007A30),
define_builtin(wiggler_seg5_texture_05008230),
define_builtin(wiggler_seg5_texture_05008A30),
define_builtin(wiggler_seg5_texture_05009230),
define_builtin(wiggler_seg5_texture_0500A230),
define_builtin(wooden_signpost_seg3_texture_0302C9C8),
define_builtin(wooden_signpost_seg3_texture_0302D1C8),
define_builtin(yellow_sphere_seg6_texture_0601EB88),
define_builtin(yellow_sphere_seg5_texture_05000040),
define_builtin(yoshi_seg5_texture_0501C4A0),
define_builtin(yoshi_seg5_texture_0501C6A0),
define_builtin(yoshi_seg5_texture_0501C8A0),
define_builtin(yoshi_egg_seg5_texture_050057B8),
define_builtin(yoshi_egg_seg5_texture_05005FB8),
define_builtin(yoshi_egg_seg5_texture_050067B8),
define_builtin(yoshi_egg_seg5_texture_05006FB8),
define_builtin(yoshi_egg_seg5_texture_050077B8),
define_builtin(yoshi_egg_seg5_texture_05007FB8),
define_builtin(yoshi_egg_seg5_texture_050087B8),
define_builtin(yoshi_egg_seg5_texture_05008FB8),
define_builtin(bobomb_seg8_texture_0801DA60),
define_builtin(bobomb_seg8_texture_0801EA60),
define_builtin(bobomb_seg8_texture_0801FA60),
define_builtin(bobomb_seg8_texture_08020A60),
define_builtin(bobomb_seg8_texture_08021A60),
define_builtin(bobomb_seg8_texture_08022260),
// mario
define_builtin(mario_texture_metal),
define_builtin(mario_texture_yellow_button),
define_builtin(mario_texture_m_logo),
define_builtin(mario_texture_hair_sideburn),
define_builtin(mario_texture_mustache),
define_builtin(mario_texture_eyes_front),
define_builtin(mario_texture_eyes_half_closed),
define_builtin(mario_texture_eyes_closed),
define_builtin(mario_texture_eyes_closed_unused1),
define_builtin(mario_texture_eyes_closed_unused2),
define_builtin(mario_texture_eyes_right),
define_builtin(mario_texture_eyes_left),
define_builtin(mario_texture_eyes_up),
define_builtin(mario_texture_eyes_down),
define_builtin(mario_texture_eyes_dead),
define_builtin(mario_texture_wings_half_1),
define_builtin(mario_texture_wings_half_2),
define_builtin(mario_texture_metal_wings_half_1),
define_builtin(mario_texture_metal_wings_half_2),
};
const Texture* DynOS_Builtin_Tex_GetFromName(const char* aDataName) {
MGR_FIND_DATA(sDynosBuiltinTexs, (const Texture*));
}
const char* DynOS_Builtin_Tex_GetFromData(const Texture* aData) {
MGR_FIND_NAME(sDynosBuiltinTexs);
}
////////////////////
// Functions Ptrs //
////////////////////

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -11,7 +11,7 @@ static Array<PackData>& DynosPacks() {
static void DynOS_Pack_ActivateActor(s32 aPackIndex, Pair<const char *, GfxData *>& pair) {
const char* aActorName = pair.first;
GfxData* aGfxData = pair.second;
auto& geoNode = *(aGfxData->mGeoLayouts.end() - 1);
GraphNode* graphNode = (GraphNode *) DynOS_Geo_GetGraphNode(geoNode->mData, false);
if (graphNode == NULL) { return; }
@ -65,10 +65,16 @@ void DynOS_Pack_SetEnabled(PackData* aPack, bool aEnabled) {
for (auto& pair : aPack->mGfxData) {
DynOS_Pack_ActivateActor(aPack->mIndex, pair);
}
for (auto& _Tex : aPack->mTextures) {
DynOS_Tex_Activate(_Tex, false);
}
} else {
for (auto& pair : aPack->mGfxData) {
DynOS_Pack_DeactivateActor(aPack->mIndex, pair);
}
for (auto& _Tex : aPack->mTextures) {
DynOS_Tex_Deactivate(_Tex);
}
}
DynOS_Actor_Override_All();
}
@ -155,3 +161,28 @@ void DynOS_Pack_AddActor(PackData* aPackData, const char* aActorName, GfxData* a
DynOS_Pack_ActivateActor(aPackData->mIndex, aPackData->mGfxData[index]);
}
}
DataNode<TexData>* DynOS_Pack_GetTex(PackData* aPackData, const char* aTexName) {
if (aPackData == NULL || aTexName == NULL) {
return NULL;
}
for (auto& _Tex : aPackData->mTextures) {
if (!strcmp(_Tex->mName.begin(), aTexName)) {
return _Tex;
}
}
return NULL;
}
void DynOS_Pack_AddTex(PackData* aPackData, DataNode<TexData>* aTexData) {
if (aPackData == NULL || aTexData == NULL) {
return;
}
aPackData->mTextures.Add(aTexData);
if (aPackData->mEnabled) {
DynOS_Tex_Activate(aTexData, false);
}
}

View file

@ -1,9 +1,20 @@
#include <map>
#include <set>
#include "dynos.cpp.h"
extern "C" {
#include "pc/gfx/gfx_rendering_api.h"
}
struct OverrideTexture {
DataNode<TexData>* node;
bool customTexture;
};
static std::map<const Texture*, struct OverrideTexture*>& DynosOverrideTextures() {
static std::map<const Texture*, struct OverrideTexture*> sDynosOverrideTextures;
return sDynosOverrideTextures;
}
// static set
static std::set<DataNode<TexData> *>& DynosValidTextures() {
static std::set<DataNode<TexData> *> sDynosValidTextures;
@ -287,6 +298,11 @@ void DynOS_Tex_Update() {
//
static DataNode<TexData> *DynOS_Tex_RetrieveNode(void *aPtr) {
auto _Override = DynosOverrideTextures()[(const Texture*)aPtr];
if (_Override && _Override->node) {
return _Override->node;
}
auto& _ValidTextures = DynosValidTextures();
if (_ValidTextures.find((DataNode<TexData>*)aPtr) != _ValidTextures.end()) {
return (DataNode<TexData>*)aPtr;
@ -317,3 +333,134 @@ bool DynOS_Tex_Import(void **aOutput, void *aPtr, s32 aTile, void *aGfxRApi, voi
(u32) aPoolSize
);
}
/////////////////////
// Custom Textures //
/////////////////////
static Array<Pair<const char*, DataNode<TexData>*>>& DynosCustomTexs() {
static Array<Pair<const char*, DataNode<TexData>*>> sDynosCustomTexs;
return sDynosCustomTexs;
}
void DynOS_Tex_Activate(DataNode<TexData>* aNode, bool aCustomTexture) {
if (!aNode) { return; }
// check for duplicates
auto& _DynosCustomTexs = DynosCustomTexs();
bool _HasCustomTex = false;
for (s32 i = 0; i < _DynosCustomTexs.Count(); ++i) {
if (!strcmp(_DynosCustomTexs[i].first, aNode->mName.begin())) {
_HasCustomTex = true;
break;
}
}
// Override texture
const Texture* _BuiltinTex = DynOS_Builtin_Tex_GetFromName(aNode->mName.begin());
if (_BuiltinTex) {
auto& _DynosOverrideTextures = DynosOverrideTextures();
if (_DynosOverrideTextures[_BuiltinTex] == NULL || !_DynosOverrideTextures[_BuiltinTex]->customTexture) {
struct OverrideTexture* _Override = new OverrideTexture();
_Override->customTexture = aCustomTexture;
_Override->node = aNode;
_DynosOverrideTextures[_BuiltinTex] = _Override;
}
}
// Add to custom textures
if (!_HasCustomTex && aCustomTexture) {
_DynosCustomTexs.Add({ aNode->mName.begin(), aNode });
}
// Add to valid
DynosValidTextures().insert(aNode);
}
void DynOS_Tex_Deactivate(DataNode<TexData>* aNode) {
if (!aNode) { return; }
// remove from custom textures
auto& _DynosCustomTexs = DynosCustomTexs();
for (s32 i = 0; i < _DynosCustomTexs.Count(); ++i) {
if (_DynosCustomTexs[i].second == aNode) {
_DynosCustomTexs.Remove(i);
i--;
}
}
// un-override texture
const Texture* _BuiltinTex = DynOS_Builtin_Tex_GetFromName(aNode->mName.begin());
auto& _DynosOverrideTextures = DynosOverrideTextures();
if (_BuiltinTex) {
auto _Override = _DynosOverrideTextures[_BuiltinTex];
if (_Override && _Override->node == aNode) {
_DynosOverrideTextures.erase(_BuiltinTex);
}
}
// Remove from valid
auto& _Schedule = DynosScheduledInvalidTextures();
_Schedule.Add(aNode);
}
void DynOS_Tex_AddCustom(const SysPath &aFilename, const char *aTexName) {
auto& _DynosCustomTexs = DynosCustomTexs();
// check for duplicates
for (s32 i = 0; i < _DynosCustomTexs.Count(); ++i) {
if (!strcmp(_DynosCustomTexs[i].first, aTexName)) {
return;
}
}
// Allocate name
u16 texLen = strlen(aTexName);
char* _TexName = (char*)calloc(1, sizeof(char) * (texLen + 1));
strcpy(_TexName, aTexName);
// Load
SysPath _PackFolder = "";
DataNode<TexData>* _Node = DynOS_Tex_LoadFromBinary(_PackFolder, aFilename, _TexName, false);
if (_Node) {
DynOS_Tex_Activate(_Node, true);
}
}
bool DynOS_Tex_Get(const char* aTexName, struct TextureInfo* aOutTexInfo) {
auto& _DynosCustomTexs = DynosCustomTexs();
// check custom textures
for (s32 i = 0; i < _DynosCustomTexs.Count(); ++i) {
if (!strcmp(_DynosCustomTexs[i].first, aTexName)) {
auto& _Data = _DynosCustomTexs[i].second->mData;
// load the texture if it hasn't been yet
if (_Data->mRawData.begin() == NULL) {
u8 *_RawData = stbi_load_from_memory(_Data->mPngData.begin(), _Data->mPngData.Count(), &_Data->mRawWidth, &_Data->mRawHeight, NULL, 4);
_Data->mRawFormat = G_IM_FMT_RGBA;
_Data->mRawSize = G_IM_SIZ_32b;
_Data->mRawData = Array<u8>(_RawData, _RawData + (_Data->mRawWidth * _Data->mRawHeight * 4));
free(_RawData);
}
// translate bit size
switch (_Data->mRawSize) {
case G_IM_SIZ_8b: aOutTexInfo->bitSize = 8; break;
case G_IM_SIZ_16b: aOutTexInfo->bitSize = 16; break;
case G_IM_SIZ_32b: aOutTexInfo->bitSize = 32; break;
default: return false;
}
//aOutTexInfo->format = _Data->mRawFormat;
aOutTexInfo->width = _Data->mRawWidth;
aOutTexInfo->height = _Data->mRawHeight;
aOutTexInfo->texture = _Data->mRawData.begin();
return true;
}
}
// check builtin textures
//return DynOS_Builtin_Tex_GetFromName(aTexName);
return false;
}

View file

@ -2135,30 +2135,6 @@
<br />
## [djui_hud_render_texture](#djui_hud_render_texture)
### Lua Example
`djui_hud_render_texture(texInfo, x, y, scaleW, scaleH)`
### Parameters
| Field | Type |
| ----- | ---- |
| texInfo | [TextureInfo](structs.md#TextureInfo) |
| x | `number` |
| y | `number` |
| scaleW | `number` |
| scaleH | `number` |
### Returns
- None
### C Prototype
`void djui_hud_render_texture(struct TextureInfo* texInfo, f32 x, f32 y, f32 scaleW, f32 scaleH);`
[:arrow_up_small:](#)
<br />
## [djui_hud_set_color](#djui_hud_set_color)
### Lua Example

View file

@ -706,7 +706,6 @@
- [djui_hud_measure_text](functions-3.md#djui_hud_measure_text)
- [djui_hud_print_text](functions-3.md#djui_hud_print_text)
- [djui_hud_render_rect](functions-3.md#djui_hud_render_rect)
- [djui_hud_render_texture](functions-3.md#djui_hud_render_texture)
- [djui_hud_set_color](functions-3.md#djui_hud_set_color)
- [djui_hud_set_font](functions-3.md#djui_hud_set_font)
- [djui_hud_set_resolution](functions-3.md#djui_hud_set_resolution)

View file

@ -391,10 +391,10 @@ struct MarioState
struct TextureInfo
{
const u8* texture;
const u8 bitSize;
const u32 width;
const u32 height;
u8* texture;
u8 bitSize;
u32 width;
u32 height;
};
#define PLAY_MODE_NORMAL 0

View file

@ -1,34 +1,34 @@
// 0x07000000 - 0x07001000
ALIGNED8 static const Texture bbh_seg7_texture_07000000[] = {
ALIGNED8 const Texture bbh_seg7_texture_07000000[] = {
#include "levels/bbh/0.rgba16.inc.c"
};
// 0x07001000 - 0x07001800
ALIGNED8 static const Texture bbh_seg7_texture_07001000[] = {
ALIGNED8 const Texture bbh_seg7_texture_07001000[] = {
#include "levels/bbh/1.rgba16.inc.c"
};
// 0x07001800 - 0x07002000
ALIGNED8 static const Texture bbh_seg7_texture_07001800[] = {
ALIGNED8 const Texture bbh_seg7_texture_07001800[] = {
#include "levels/bbh/2.rgba16.inc.c"
};
// 0x07002000 - 0x07003000
ALIGNED8 static const Texture bbh_seg7_texture_07002000[] = {
ALIGNED8 const Texture bbh_seg7_texture_07002000[] = {
#include "levels/bbh/3.rgba16.inc.c"
};
// 0x07003000 - 0x07003400
ALIGNED8 static const Texture bbh_seg7_texture_07003000[] = {
ALIGNED8 const Texture bbh_seg7_texture_07003000[] = {
#include "levels/bbh/4.rgba16.inc.c"
};
// 0x07003400 - 0x07004400
ALIGNED8 static const Texture bbh_seg7_texture_07003400[] = {
ALIGNED8 const Texture bbh_seg7_texture_07003400[] = {
#include "levels/bbh/5.rgba16.inc.c"
};
// 0x07004400 - 0x07004800
ALIGNED8 static const Texture bbh_seg7_texture_07004400[] = {
ALIGNED8 const Texture bbh_seg7_texture_07004400[] = {
#include "levels/bbh/6.rgba16.inc.c"
};

View file

@ -1,19 +1,19 @@
// 0x07000000 - 0x07000002
ALIGNED8 static const Texture bitdw_seg7_texture_07000000[] = {
ALIGNED8 const Texture bitdw_seg7_texture_07000000[] = {
#include "levels/bitdw/0.rgba16.inc.c"
};
// 0x07000800 - 0x07000802
ALIGNED8 static const Texture bitdw_seg7_texture_07000800[] = {
ALIGNED8 const Texture bitdw_seg7_texture_07000800[] = {
#include "levels/bitdw/1.rgba16.inc.c"
};
// 0x07001000 - 0x07001002
ALIGNED8 static const Texture bitdw_seg7_texture_07001000[] = {
ALIGNED8 const Texture bitdw_seg7_texture_07001000[] = {
#include "levels/bitdw/2.rgba16.inc.c"
};
// 0x07001800 - 0x07001802
ALIGNED8 static const Texture bitdw_seg7_texture_07001800[] = {
ALIGNED8 const Texture bitdw_seg7_texture_07001800[] = {
#include "levels/bitdw/3.rgba16.inc.c"
};

View file

@ -1,14 +1,14 @@
// 0x07000000 - 0x07001000
ALIGNED8 static const Texture bitfs_seg7_texture_07000000[] = {
ALIGNED8 const Texture bitfs_seg7_texture_07000000[] = {
#include "levels/bitfs/0.rgba16.inc.c"
};
// 0x07001000 - 0x07001800
ALIGNED8 static const Texture bitfs_seg7_texture_07001000[] = {
ALIGNED8 const Texture bitfs_seg7_texture_07001000[] = {
#include "levels/bitfs/1.rgba16.inc.c"
};
// 0x07001800 - 0x07002000
ALIGNED8 static const Texture bitfs_seg7_texture_07001800[] = {
ALIGNED8 const Texture bitfs_seg7_texture_07001800[] = {
#include "levels/bitfs/2.rgba16.inc.c"
};

View file

@ -1,14 +1,14 @@
// 0x07000000 - 0x07001000
ALIGNED8 static const Texture bits_seg7_texture_07000000[] = {
ALIGNED8 const Texture bits_seg7_texture_07000000[] = {
#include "levels/bits/0.rgba16.inc.c"
};
// 0x07001000 - 0x07002000
ALIGNED8 static const Texture bits_seg7_texture_07001000[] = {
ALIGNED8 const Texture bits_seg7_texture_07001000[] = {
#include "levels/bits/1.rgba16.inc.c"
};
// 0x07002000 - 0x07002800
ALIGNED8 static const Texture bits_seg7_texture_07002000[] = {
ALIGNED8 const Texture bits_seg7_texture_07002000[] = {
#include "levels/bits/2.rgba16.inc.c"
};

View file

@ -1,24 +1,24 @@
// 0x07000000 - 0x07000800
ALIGNED8 static const Texture bob_seg7_texture_07000000[] = {
ALIGNED8 const Texture bob_seg7_texture_07000000[] = {
#include "levels/bob/0.rgba16.inc.c"
};
// 0x07000800 - 0x07001000
ALIGNED8 static const Texture bob_seg7_texture_07000800[] = {
ALIGNED8 const Texture bob_seg7_texture_07000800[] = {
#include "levels/bob/1.rgba16.inc.c"
};
// 0x07001000 - 0x07001800
ALIGNED8 static const Texture bob_seg7_texture_07001000[] = {
ALIGNED8 const Texture bob_seg7_texture_07001000[] = {
#include "levels/bob/2.rgba16.inc.c"
};
// 0x07001800 - 0x07002000
ALIGNED8 static const Texture bob_seg7_texture_07001800[] = {
ALIGNED8 const Texture bob_seg7_texture_07001800[] = {
#include "levels/bob/3.rgba16.inc.c"
};
// 0x07002000 - 0x07002800
ALIGNED8 static const Texture bob_seg7_texture_07002000[] = {
ALIGNED8 const Texture bob_seg7_texture_07002000[] = {
#include "levels/bob/4.rgba16.inc.c"
};

View file

@ -1,14 +1,14 @@
// 0x07000000 - 0x07000002
ALIGNED8 static const Texture bowser_1_seg7_texture_07000000[] = {
ALIGNED8 const Texture bowser_1_seg7_texture_07000000[] = {
#include "levels/bowser_1/0.rgba16.inc.c"
};
// 0x07001000 - 0x07001002
ALIGNED8 static const Texture bowser_1_seg7_texture_07001000[] = {
ALIGNED8 const Texture bowser_1_seg7_texture_07001000[] = {
#include "levels/bowser_1/1.rgba16.inc.c"
};
// 0x07001800 - 0x07001802
ALIGNED8 static const Texture bowser_1_seg7_texture_07001800[] = {
ALIGNED8 const Texture bowser_1_seg7_texture_07001800[] = {
#include "levels/bowser_1/2.rgba16.inc.c"
};

View file

@ -1,4 +1,4 @@
// 0x07000000 - 0x07000800
ALIGNED8 static const Texture bowser_2_seg7_texture_07000000[] = {
ALIGNED8 const Texture bowser_2_seg7_texture_07000000[] = {
#include "levels/bowser_2/0.rgba16.inc.c"
};

View file

@ -1,14 +1,14 @@
// 0x07000000 - 0x07000800
ALIGNED8 static const Texture bowser_3_seg7_texture_07000000[] = {
ALIGNED8 const Texture bowser_3_seg7_texture_07000000[] = {
#include "levels/bowser_3/0.rgba16.inc.c"
};
// 0x07000800 - 0x07001000
ALIGNED8 static const Texture bowser_3_seg7_texture_07000800[] = {
ALIGNED8 const Texture bowser_3_seg7_texture_07000800[] = {
#include "levels/bowser_3/1.rgba16.inc.c"
};
// 0x07001000 - 0x07002000
ALIGNED8 static const Texture bowser_3_seg7_texture_07001000[] = {
ALIGNED8 const Texture bowser_3_seg7_texture_07001000[] = {
#include "levels/bowser_3/2.rgba16.inc.c"
};

View file

@ -18,12 +18,12 @@ static const Vtx castle_grounds_seg7_vertex_0700C9A8[] = {
};
// 0x0700C9E8 - 0x0700D9E8
ALIGNED8 static const Texture castle_grounds_seg7_texture_0700C9E8[] = {
ALIGNED8 const Texture castle_grounds_seg7_texture_0700C9E8[] = {
#include "levels/castle_grounds/3.rgba16.inc.c"
};
// 0x0700D9E8 - 0x0700E9E8
ALIGNED8 static const Texture castle_grounds_seg7_texture_0700D9E8[] = {
ALIGNED8 const Texture castle_grounds_seg7_texture_0700D9E8[] = {
#include "levels/castle_grounds/4.rgba16.inc.c"
};

View file

@ -1,4 +1,4 @@
ALIGNED8 static const Texture castle_grounds_seg7_us_texture_0700EAE8[] = {
ALIGNED8 const Texture castle_grounds_seg7_us_texture_0700EAE8[] = {
#include "levels/castle_grounds/5.ia8.inc.c"
};

View file

@ -1,14 +1,14 @@
// 0x07000000 - 0x07001000
ALIGNED8 static const Texture castle_grounds_seg7_texture_07000000[] = {
ALIGNED8 const Texture castle_grounds_seg7_texture_07000000[] = {
#include "levels/castle_grounds/0.rgba16.inc.c"
};
// 0x07001000 - 0x07002000
ALIGNED8 static const Texture castle_grounds_seg7_texture_07001000[] = {
ALIGNED8 const Texture castle_grounds_seg7_texture_07001000[] = {
#include "levels/castle_grounds/1.rgba16.inc.c"
};
// 0x07002000 - 0x07003000
ALIGNED8 static const Texture castle_grounds_seg7_texture_07002000[] = {
ALIGNED8 const Texture castle_grounds_seg7_texture_07002000[] = {
#include "levels/castle_grounds/2.rgba16.inc.c"
};

View file

@ -1300,55 +1300,55 @@ static const Gfx inside_castle_seg7_painting_dl_070235B8[] = {
gsSPBranchList(inside_castle_seg7_painting_dl_07023580),
};
ALIGNED8 static const Texture *const inside_castle_seg7_painting_textures_070235C0[] = {
ALIGNED8 const Texture *const inside_castle_seg7_painting_textures_070235C0[] = {
inside_castle_seg7_texture_0700B800, inside_castle_seg7_texture_0700A800,
};
ALIGNED8 static const Texture *const inside_castle_seg7_painting_textures_070235C8[] = {
ALIGNED8 const Texture *const inside_castle_seg7_painting_textures_070235C8[] = {
inside_castle_seg7_texture_0700D800, inside_castle_seg7_texture_0700C800,
};
ALIGNED8 static const Texture *const inside_castle_seg7_painting_textures_070235D0[] = {
ALIGNED8 const Texture *const inside_castle_seg7_painting_textures_070235D0[] = {
inside_castle_seg7_texture_0700F800, inside_castle_seg7_texture_0700E800,
};
ALIGNED8 static const Texture *const inside_castle_seg7_painting_textures_070235D8[] = {
ALIGNED8 const Texture *const inside_castle_seg7_painting_textures_070235D8[] = {
inside_castle_seg7_texture_07011800, inside_castle_seg7_texture_07010800,
};
ALIGNED8 static const Texture *const inside_castle_seg7_painting_textures_070235E0[] = {
ALIGNED8 const Texture *const inside_castle_seg7_painting_textures_070235E0[] = {
inside_castle_seg7_texture_07012800, inside_castle_seg7_texture_07013800,
};
ALIGNED8 static const Texture *const inside_castle_seg7_painting_textures_070235E8[] = {
ALIGNED8 const Texture *const inside_castle_seg7_painting_textures_070235E8[] = {
inside_castle_seg7_texture_07015800, inside_castle_seg7_texture_07014800,
};
ALIGNED8 static const Texture *const inside_castle_seg7_painting_textures_070235F0[] = {
ALIGNED8 const Texture *const inside_castle_seg7_painting_textures_070235F0[] = {
inside_castle_seg7_texture_07016800,
};
ALIGNED8 static const Texture *const inside_castle_seg7_painting_textures_070235F4[] = {
ALIGNED8 const Texture *const inside_castle_seg7_painting_textures_070235F4[] = {
inside_castle_seg7_texture_07017000,
};
ALIGNED8 static const Texture *const inside_castle_seg7_painting_textures_070235F8[] = {
ALIGNED8 const Texture *const inside_castle_seg7_painting_textures_070235F8[] = {
inside_castle_seg7_texture_07018800, inside_castle_seg7_texture_07017800,
};
ALIGNED8 static const Texture *const inside_castle_seg7_painting_textures_07023600[] = {
ALIGNED8 const Texture *const inside_castle_seg7_painting_textures_07023600[] = {
inside_castle_seg7_texture_0701A800, inside_castle_seg7_texture_07019800,
};
ALIGNED8 static const Texture *const inside_castle_seg7_painting_textures_07023608[] = {
ALIGNED8 const Texture *const inside_castle_seg7_painting_textures_07023608[] = {
inside_castle_seg7_texture_0701C800, inside_castle_seg7_texture_0701B800,
};
ALIGNED8 static const Texture *const inside_castle_seg7_painting_textures_07023610[] = {
ALIGNED8 const Texture *const inside_castle_seg7_painting_textures_07023610[] = {
inside_castle_seg7_texture_0701E800, inside_castle_seg7_texture_0701D800,
};
ALIGNED8 static const Texture *const inside_castle_seg7_painting_textures_07023618[] = {
ALIGNED8 const Texture *const inside_castle_seg7_painting_textures_07023618[] = {
inside_castle_seg7_texture_07020800, inside_castle_seg7_texture_0701F800,
};

View file

@ -1,216 +1,216 @@
ALIGNED8 static const Texture texture_castle_light[] = {
ALIGNED8 const Texture texture_castle_light[] = {
#include "levels/castle_inside/castle_light.ia16.inc.c"
};
// 0x07000800 - 0x07001000
ALIGNED8 static const Texture inside_castle_seg7_texture_07000800[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_07000800[] = {
#include "levels/castle_inside/1.rgba16.inc.c"
};
// 0x07001000 - 0x07002000
ALIGNED8 static const Texture inside_castle_seg7_texture_07001000[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_07001000[] = {
#include "levels/castle_inside/2.ia16.inc.c"
};
// 0x07002000 - 0x07003000
ALIGNED8 static const Texture inside_castle_seg7_texture_07002000[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_07002000[] = {
#include "levels/castle_inside/3.rgba16.inc.c"
};
// 0x07003000 - 0x07003800
ALIGNED8 static const Texture inside_castle_seg7_texture_07003000[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_07003000[] = {
#include "levels/castle_inside/4.rgba16.inc.c"
};
// 0x07003800 - 0x07004800
ALIGNED8 static const Texture inside_castle_seg7_texture_07003800[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_07003800[] = {
#include "levels/castle_inside/5.rgba16.inc.c"
};
// 0x07004800 - 0x07005800
ALIGNED8 static const Texture inside_castle_seg7_texture_07004800[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_07004800[] = {
#include "levels/castle_inside/6.rgba16.inc.c"
};
// 0x07005800 - 0x07006000
ALIGNED8 static const Texture inside_castle_seg7_texture_07005800[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_07005800[] = {
#include "levels/castle_inside/7.rgba16.inc.c"
};
// 0x07006000 - 0x07006800
ALIGNED8 static const Texture inside_castle_seg7_texture_07006000[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_07006000[] = {
#include "levels/castle_inside/8.rgba16.inc.c"
};
// 0x07006800 - 0x07007000
ALIGNED8 static const Texture inside_castle_seg7_texture_07006800[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_07006800[] = {
#include "levels/castle_inside/9.rgba16.inc.c"
};
// 0x07007000 - 0x07007800
ALIGNED8 static const Texture inside_castle_seg7_texture_07007000[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_07007000[] = {
#include "levels/castle_inside/10.rgba16.inc.c"
};
// 0x07007800 - 0x07008000
ALIGNED8 static const Texture inside_castle_seg7_texture_07007800[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_07007800[] = {
#include "levels/castle_inside/11.rgba16.inc.c"
};
// 0x07008000 - 0x07008800
ALIGNED8 static const Texture inside_castle_seg7_texture_07008000[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_07008000[] = {
#include "levels/castle_inside/12.rgba16.inc.c"
};
// 0x07008800 - 0x07009000
ALIGNED8 static const Texture inside_castle_seg7_texture_07008800[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_07008800[] = {
#include "levels/castle_inside/13.rgba16.inc.c"
};
// 0x07009000 - 0x07009800
ALIGNED8 static const Texture inside_castle_seg7_texture_07009000[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_07009000[] = {
#include "levels/castle_inside/14.rgba16.inc.c"
};
// 0x07009800 - 0x0700A000
ALIGNED8 static const Texture inside_castle_seg7_texture_07009800[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_07009800[] = {
#include "levels/castle_inside/15.rgba16.inc.c"
};
// 0x0700A000 - 0x0700A800
ALIGNED8 static const Texture inside_castle_seg7_texture_0700A000[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_0700A000[] = {
#include "levels/castle_inside/16.ia16.inc.c"
};
// 0x0700A800 - 0x0700B800
ALIGNED8 static const Texture inside_castle_seg7_texture_0700A800[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_0700A800[] = {
#include "levels/castle_inside/17.rgba16.inc.c"
};
// 0x0700B800 - 0x0700C800
ALIGNED8 static const Texture inside_castle_seg7_texture_0700B800[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_0700B800[] = {
#include "levels/castle_inside/18.rgba16.inc.c"
};
// 0x0700C800 - 0x0700D800
ALIGNED8 static const Texture inside_castle_seg7_texture_0700C800[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_0700C800[] = {
#include "levels/castle_inside/19.rgba16.inc.c"
};
// 0x0700D800 - 0x0700E800
ALIGNED8 static const Texture inside_castle_seg7_texture_0700D800[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_0700D800[] = {
#include "levels/castle_inside/20.rgba16.inc.c"
};
// 0x0700E800 - 0x0700F800
ALIGNED8 static const Texture inside_castle_seg7_texture_0700E800[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_0700E800[] = {
#include "levels/castle_inside/21.rgba16.inc.c"
};
// 0x0700F800 - 0x07010800
ALIGNED8 static const Texture inside_castle_seg7_texture_0700F800[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_0700F800[] = {
#include "levels/castle_inside/22.rgba16.inc.c"
};
#ifdef VERSION_JP
// 0x07010800 - 0x07011800
ALIGNED8 static const Texture inside_castle_seg7_texture_07010800[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_07010800[] = {
#include "levels/castle_inside/23.rgba16.inc.c"
};
// 0x07011800 - 0x0701200
ALIGNED8 static const Texture inside_castle_seg7_texture_07011800[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_07011800[] = {
#include "levels/castle_inside/24.rgba16.inc.c"
};
#else
// 0x07010800 - 0x07011800
ALIGNED8 static const Texture inside_castle_seg7_texture_07010800[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_07010800[] = {
#include "levels/castle_inside/23_us.rgba16.inc.c"
};
// 0x07011800 - 0x0701200
ALIGNED8 static const Texture inside_castle_seg7_texture_07011800[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_07011800[] = {
#include "levels/castle_inside/24_us.rgba16.inc.c"
};
#endif
// 0x07012800 - 0x07013800
ALIGNED8 static const Texture inside_castle_seg7_texture_07012800[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_07012800[] = {
#include "levels/castle_inside/25.rgba16.inc.c"
};
// 0x07013800 - 0x07014800
ALIGNED8 static const Texture inside_castle_seg7_texture_07013800[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_07013800[] = {
#include "levels/castle_inside/26.rgba16.inc.c"
};
// 0x07014800 - 0x07015800
ALIGNED8 static const Texture inside_castle_seg7_texture_07014800[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_07014800[] = {
#include "levels/castle_inside/27.rgba16.inc.c"
};
// 0x07015800 - 0x07016800
ALIGNED8 static const Texture inside_castle_seg7_texture_07015800[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_07015800[] = {
#include "levels/castle_inside/28.rgba16.inc.c"
};
// 0x07016800 - 0x07017000
ALIGNED8 static const Texture inside_castle_seg7_texture_07016800[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_07016800[] = {
#include "levels/castle_inside/29.rgba16.inc.c"
};
// 0x07017000 - 0x07017800
ALIGNED8 static const Texture inside_castle_seg7_texture_07017000[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_07017000[] = {
#include "levels/castle_inside/30.rgba16.inc.c"
};
// 0x07017800 - 0x07018800
ALIGNED8 static const Texture inside_castle_seg7_texture_07017800[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_07017800[] = {
#include "levels/castle_inside/31.rgba16.inc.c"
};
// 0x07018800 - 0x07019800
ALIGNED8 static const Texture inside_castle_seg7_texture_07018800[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_07018800[] = {
#include "levels/castle_inside/32.rgba16.inc.c"
};
// 0x07019800 - 0x0701A800
ALIGNED8 static const Texture inside_castle_seg7_texture_07019800[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_07019800[] = {
#include "levels/castle_inside/33.rgba16.inc.c"
};
// 0x0701A800 - 0x0701B800
ALIGNED8 static const Texture inside_castle_seg7_texture_0701A800[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_0701A800[] = {
#include "levels/castle_inside/34.rgba16.inc.c"
};
// 0x0701B800 - 0x0701C800
ALIGNED8 static const Texture inside_castle_seg7_texture_0701B800[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_0701B800[] = {
#include "levels/castle_inside/35.rgba16.inc.c"
};
// 0x0701C800 - 0x0701D800
ALIGNED8 static const Texture inside_castle_seg7_texture_0701C800[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_0701C800[] = {
#include "levels/castle_inside/36.rgba16.inc.c"
};
// 0x0701D800 - 0x0701E800
ALIGNED8 static const Texture inside_castle_seg7_texture_0701D800[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_0701D800[] = {
#include "levels/castle_inside/37.rgba16.inc.c"
};
// 0x0701E800 - 0x0701F800
ALIGNED8 static const Texture inside_castle_seg7_texture_0701E800[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_0701E800[] = {
#include "levels/castle_inside/38.rgba16.inc.c"
};
// 0x0701F800 - 0x07020800
ALIGNED8 static const Texture inside_castle_seg7_texture_0701F800[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_0701F800[] = {
#include "levels/castle_inside/39.rgba16.inc.c"
};
// 0x07020800 - 0x07021800
ALIGNED8 static const Texture inside_castle_seg7_texture_07020800[] = {
ALIGNED8 const Texture inside_castle_seg7_texture_07020800[] = {
#include "levels/castle_inside/40.rgba16.inc.c"
};

View file

@ -5,7 +5,7 @@ static const Lights1 ccm_seg7_lights_07011940 = gdSPDefLights1(
);
// 0x07011958 - 0x07012158
ALIGNED8 static const Texture ccm_seg7_texture_07011958[] = {
ALIGNED8 const Texture ccm_seg7_texture_07011958[] = {
#include "levels/ccm/12.rgba16.inc.c"
};

View file

@ -1,59 +1,59 @@
// 0x07000000 - 0x07000800
ALIGNED8 static const Texture ccm_seg7_texture_07000000[] = {
ALIGNED8 const Texture ccm_seg7_texture_07000000[] = {
#include "levels/ccm/0.rgba16.inc.c"
};
// 0x07000800 - 0x07000900
ALIGNED8 static const Texture ccm_seg7_texture_07000800[] = {
ALIGNED8 const Texture ccm_seg7_texture_07000800[] = {
#include "levels/ccm/1.rgba16.inc.c"
};
// 0x07000900 - 0x07001100
ALIGNED8 static const Texture ccm_seg7_texture_07000900[] = {
ALIGNED8 const Texture ccm_seg7_texture_07000900[] = {
#include "levels/ccm/2.rgba16.inc.c"
};
// 0x07001100 - 0x07001900
ALIGNED8 static const Texture ccm_seg7_texture_07001100[] = {
ALIGNED8 const Texture ccm_seg7_texture_07001100[] = {
#include "levels/ccm/3.rgba16.inc.c"
};
// 0x07001900 - 0x07002100
ALIGNED8 static const Texture ccm_seg7_texture_07001900[] = {
ALIGNED8 const Texture ccm_seg7_texture_07001900[] = {
#include "levels/ccm/4.rgba16.inc.c"
};
// 0x07002100 - 0x07002900
ALIGNED8 static const Texture ccm_seg7_texture_07002100[] = {
ALIGNED8 const Texture ccm_seg7_texture_07002100[] = {
#include "levels/ccm/5.rgba16.inc.c"
};
// 0x07002900 - 0x07003100
ALIGNED8 static const Texture ccm_seg7_texture_07002900[] = {
ALIGNED8 const Texture ccm_seg7_texture_07002900[] = {
#include "levels/ccm/6.rgba16.inc.c"
};
// 0x07003100 - 0x07003900
ALIGNED8 static const Texture ccm_seg7_texture_07003100[] = {
ALIGNED8 const Texture ccm_seg7_texture_07003100[] = {
#include "levels/ccm/7.rgba16.inc.c"
};
// 0x07003900 - 0x07003B00
ALIGNED8 static const Texture ccm_seg7_texture_07003900[] = {
ALIGNED8 const Texture ccm_seg7_texture_07003900[] = {
#include "levels/ccm/8.ia16.inc.c"
};
// 0x07003B00 - 0x07004300
ALIGNED8 static const Texture ccm_seg7_texture_07003B00[] = {
ALIGNED8 const Texture ccm_seg7_texture_07003B00[] = {
#include "levels/ccm/9.ia16.inc.c"
};
// 0x07004300 - 0x07004B00
ALIGNED8 static const Texture ccm_seg7_texture_07004300[] = {
ALIGNED8 const Texture ccm_seg7_texture_07004300[] = {
#include "levels/ccm/10.rgba16.inc.c"
};
// 0x07004B00 - 0x07005300
ALIGNED8 static const Texture ccm_seg7_texture_07004B00[] = {
ALIGNED8 const Texture ccm_seg7_texture_07004B00[] = {
#include "levels/ccm/11.rgba16.inc.c"
};

View file

@ -1,24 +1,24 @@
// 0x07000000 - 0x07001000
ALIGNED8 static const Texture cotmc_seg7_texture_07000000[] = {
ALIGNED8 const Texture cotmc_seg7_texture_07000000[] = {
#include "levels/cotmc/0.rgba16.inc.c"
};
// 0x07001000 - 0x07001800
ALIGNED8 static const Texture cotmc_seg7_texture_07001000[] = {
ALIGNED8 const Texture cotmc_seg7_texture_07001000[] = {
#include "levels/cotmc/1.rgba16.inc.c"
};
// 0x07001800 - 0x07002000
ALIGNED8 static const Texture cotmc_seg7_texture_07001800[] = {
ALIGNED8 const Texture cotmc_seg7_texture_07001800[] = {
#include "levels/cotmc/2.rgba16.inc.c"
};
// 0x07002000 - 0x07002800
ALIGNED8 static const Texture cotmc_seg7_texture_07002000[] = {
ALIGNED8 const Texture cotmc_seg7_texture_07002000[] = {
#include "levels/cotmc/3.rgba16.inc.c"
};
// 0x07002800 - 0x07003000
ALIGNED8 static const Texture cotmc_seg7_texture_07002800[] = {
ALIGNED8 const Texture cotmc_seg7_texture_07002800[] = {
#include "levels/cotmc/4.rgba16.inc.c"
};

View file

@ -1,24 +1,24 @@
// 0x07000000 - 0x07001000
ALIGNED8 static const Texture ddd_seg7_texture_07000000[] = {
ALIGNED8 const Texture ddd_seg7_texture_07000000[] = {
#include "levels/ddd/0.rgba16.inc.c"
};
// 0x07001000 - 0x07001800
ALIGNED8 static const Texture ddd_seg7_texture_07001000[] = {
ALIGNED8 const Texture ddd_seg7_texture_07001000[] = {
#include "levels/ddd/1.rgba16.inc.c"
};
// 0x07001800 - 0x07002000
ALIGNED8 static const Texture ddd_seg7_texture_07001800[] = {
ALIGNED8 const Texture ddd_seg7_texture_07001800[] = {
#include "levels/ddd/2.rgba16.inc.c"
};
// 0x07002000 - 0x07003000
ALIGNED8 static const Texture ddd_seg7_texture_07002000[] = {
ALIGNED8 const Texture ddd_seg7_texture_07002000[] = {
#include "levels/ddd/3.rgba16.inc.c"
};
// 0x07003000 - 0x07003800
ALIGNED8 static const Texture ddd_seg7_texture_07003000[] = {
ALIGNED8 const Texture ddd_seg7_texture_07003000[] = {
#include "levels/ddd/4.rgba16.inc.c"
};

View file

@ -10,32 +10,32 @@
#include "levels/ending/cake_eu.inc.c"
// 0x07023000 - 0x07023FFF
ALIGNED8 static const Texture cake_end_texture_eu_35[] = {
ALIGNED8 const Texture cake_end_texture_eu_35[] = {
#include "levels/ending/eu_023000.rgba16.inc.c"
};
// 0x07024000 - 0x07024FFF
ALIGNED8 static const Texture cake_end_texture_eu_36[] = {
ALIGNED8 const Texture cake_end_texture_eu_36[] = {
#include "levels/ending/eu_024000.rgba16.inc.c"
};
// 0x07025000 - 0x07025FFF
ALIGNED8 static const Texture cake_end_texture_eu_37[] = {
ALIGNED8 const Texture cake_end_texture_eu_37[] = {
#include "levels/ending/eu_025000.rgba16.inc.c"
};
// 0x07026000 - 0x07026FFF
ALIGNED8 static const Texture cake_end_texture_eu_38[] = {
ALIGNED8 const Texture cake_end_texture_eu_38[] = {
#include "levels/ending/eu_026000.rgba16.inc.c"
};
// 0x07027000 - 0x07027FFF
ALIGNED8 static const Texture cake_end_texture_eu_39[] = {
ALIGNED8 const Texture cake_end_texture_eu_39[] = {
#include "levels/ending/eu_027000.rgba16.inc.c"
};
// 0x07028000 - 0x07028FFF
ALIGNED8 static const Texture cake_end_texture_eu_40[] = {
ALIGNED8 const Texture cake_end_texture_eu_40[] = {
#include "levels/ending/eu_028000.rgba16.inc.c"
};

View file

@ -501,7 +501,7 @@ UNUSED static const u64 hmc_unused_0 = 0;
// 0x07024CE0 - 0x070254E0
ALIGNED8 static const Texture hmc_seg7_texture_07024CE0[] = {
ALIGNED8 const Texture hmc_seg7_texture_07024CE0[] = {
#include "levels/hmc/7.rgba16.inc.c"
};

View file

@ -1,34 +1,34 @@
// 0x07000000 - 0x07001000
ALIGNED8 static const Texture hmc_seg7_texture_07000000[] = {
ALIGNED8 const Texture hmc_seg7_texture_07000000[] = {
#include "levels/hmc/0.rgba16.inc.c"
};
// 0x07001000 - 0x07002000
ALIGNED8 static const Texture hmc_seg7_texture_07001000[] = {
ALIGNED8 const Texture hmc_seg7_texture_07001000[] = {
#include "levels/hmc/1.rgba16.inc.c"
};
// 0x07002000 - 0x07003000
ALIGNED8 static const Texture hmc_seg7_texture_07002000[] = {
ALIGNED8 const Texture hmc_seg7_texture_07002000[] = {
#include "levels/hmc/2.rgba16.inc.c"
};
// 0x07003000 - 0x07003800
ALIGNED8 static const Texture hmc_seg7_texture_07003000[] = {
ALIGNED8 const Texture hmc_seg7_texture_07003000[] = {
#include "levels/hmc/3.rgba16.inc.c"
};
// 0x07003800 - 0x07004000
ALIGNED8 static const Texture hmc_seg7_texture_07003800[] = {
ALIGNED8 const Texture hmc_seg7_texture_07003800[] = {
#include "levels/hmc/4.rgba16.inc.c"
};
// 0x07004000 - 0x07004800
ALIGNED8 static const Texture hmc_seg7_texture_07004000[] = {
ALIGNED8 const Texture hmc_seg7_texture_07004000[] = {
#include "levels/hmc/5.rgba16.inc.c"
};
// 0x07004800 - 0x07005800
ALIGNED8 static const Texture hmc_seg7_texture_07004800[] = {
ALIGNED8 const Texture hmc_seg7_texture_07004800[] = {
#include "levels/hmc/6.rgba16.inc.c"
};

View file

@ -2577,12 +2577,12 @@ static const Vtx intro_seg7_vertex_07007DF0[] = {
};
// 0x07007EA0 - 0x07007EA2
ALIGNED8 static const Texture intro_seg7_texture_07007EA0[] = {
ALIGNED8 const Texture intro_seg7_texture_07007EA0[] = {
#include "levels/intro/0.rgba16.inc.c"
};
// 0x070086A0 - 0x070086A2
ALIGNED8 static const Texture intro_seg7_texture_070086A0[] = {
ALIGNED8 const Texture intro_seg7_texture_070086A0[] = {
#include "levels/intro/1.rgba16.inc.c"
};
@ -3335,13 +3335,13 @@ static const Vtx intro_seg7_vertex_0700B460[] = {
#if defined(VERSION_EU) || defined(VERSION_SH)
// 0x0700B4A0 - 0x0700B4A2
ALIGNED8 static const Texture intro_seg7_texture_0700B4A0[] = {
ALIGNED8 const Texture intro_seg7_texture_0700B4A0[] = {
#include "levels/intro/2_eu_copyright.rgba16.inc.c"
};
#else
// 0x0700B4A0 - 0x0700B4A2
ALIGNED8 static const Texture intro_seg7_texture_0700B4A0[] = {
ALIGNED8 const Texture intro_seg7_texture_0700B4A0[] = {
#include "levels/intro/2_copyright.rgba16.inc.c"
};
#endif
@ -3357,7 +3357,7 @@ ALIGNED8 static const u8 intro_seg7_texture_0700C4A0[] = {
};
#else
// 0x0700C4A0 - 0x0700D4A0
ALIGNED8 static const Texture intro_seg7_texture_0700C4A0[] = {
ALIGNED8 const Texture intro_seg7_texture_0700C4A0[] = {
#include "levels/intro/3_tm.rgba16.inc.c"
};
#endif

View file

@ -1,19 +1,19 @@
// 0x07000000 - 0x07000800
ALIGNED8 static const Texture jrb_seg7_texture_07000000[] = {
ALIGNED8 const Texture jrb_seg7_texture_07000000[] = {
#include "levels/jrb/0.rgba16.inc.c"
};
// 0x07000800 - 0x07001800
ALIGNED8 static const Texture jrb_seg7_texture_07000800[] = {
ALIGNED8 const Texture jrb_seg7_texture_07000800[] = {
#include "levels/jrb/1.rgba16.inc.c"
};
// 0x07001800 - 0x07002000
ALIGNED8 static const Texture jrb_seg7_texture_07001800[] = {
ALIGNED8 const Texture jrb_seg7_texture_07001800[] = {
#include "levels/jrb/2.rgba16.inc.c"
};
// 0x07002000 - 0x07002800
ALIGNED8 static const Texture jrb_seg7_texture_07002000[] = {
ALIGNED8 const Texture jrb_seg7_texture_07002000[] = {
#include "levels/jrb/3.rgba16.inc.c"
};

View file

@ -1,164 +1,164 @@
// 0x07000000 - 0x07000800
ALIGNED8 static const Texture lll_seg7_texture_07000000[] = {
ALIGNED8 const Texture lll_seg7_texture_07000000[] = {
#include "levels/lll/0.rgba16.inc.c"
};
// 0x07000800 - 0x07001000
ALIGNED8 static const Texture lll_seg7_texture_07000800[] = {
ALIGNED8 const Texture lll_seg7_texture_07000800[] = {
#include "levels/lll/1.rgba16.inc.c"
};
// 0x07001000 - 0x07001800
ALIGNED8 static const Texture lll_seg7_texture_07001000[] = {
ALIGNED8 const Texture lll_seg7_texture_07001000[] = {
#include "levels/lll/2.rgba16.inc.c"
};
// 0x07001800 - 0x07002000
ALIGNED8 static const Texture lll_seg7_texture_07001800[] = {
ALIGNED8 const Texture lll_seg7_texture_07001800[] = {
#include "levels/lll/3.rgba16.inc.c"
};
// 0x07002000 - 0x07002800
ALIGNED8 static const Texture lll_seg7_texture_07002000[] = {
ALIGNED8 const Texture lll_seg7_texture_07002000[] = {
#include "levels/lll/4.rgba16.inc.c"
};
// 0x07002800 - 0x07003000
ALIGNED8 static const Texture lll_seg7_texture_07002800[] = {
ALIGNED8 const Texture lll_seg7_texture_07002800[] = {
#include "levels/lll/5.rgba16.inc.c"
};
// 0x07003000 - 0x07003800
ALIGNED8 static const Texture lll_seg7_texture_07003000[] = {
ALIGNED8 const Texture lll_seg7_texture_07003000[] = {
#include "levels/lll/6.rgba16.inc.c"
};
// 0x07003800 - 0x07004000
ALIGNED8 static const Texture lll_seg7_texture_07003800[] = {
ALIGNED8 const Texture lll_seg7_texture_07003800[] = {
#include "levels/lll/7.rgba16.inc.c"
};
// 0x07004000 - 0x07004800
ALIGNED8 static const Texture lll_seg7_texture_07004000[] = {
ALIGNED8 const Texture lll_seg7_texture_07004000[] = {
#include "levels/lll/8.rgba16.inc.c"
};
// 0x07004800 - 0x07005000
ALIGNED8 static const Texture lll_seg7_texture_07004800[] = {
ALIGNED8 const Texture lll_seg7_texture_07004800[] = {
#include "levels/lll/9.rgba16.inc.c"
};
// 0x07005000 - 0x07005800
ALIGNED8 static const Texture lll_seg7_texture_07005000[] = {
ALIGNED8 const Texture lll_seg7_texture_07005000[] = {
#include "levels/lll/10.rgba16.inc.c"
};
// 0x07005800 - 0x07006000
ALIGNED8 static const Texture lll_seg7_texture_07005800[] = {
ALIGNED8 const Texture lll_seg7_texture_07005800[] = {
#include "levels/lll/11.rgba16.inc.c"
};
// 0x07006000 - 0x07006800
ALIGNED8 static const Texture lll_seg7_texture_07006000[] = {
ALIGNED8 const Texture lll_seg7_texture_07006000[] = {
#include "levels/lll/12.rgba16.inc.c"
};
// 0x07006800 - 0x07007000
ALIGNED8 static const Texture lll_seg7_texture_07006800[] = {
ALIGNED8 const Texture lll_seg7_texture_07006800[] = {
#include "levels/lll/13.rgba16.inc.c"
};
// 0x07007000 - 0x07007800
ALIGNED8 static const Texture lll_seg7_texture_07007000[] = {
ALIGNED8 const Texture lll_seg7_texture_07007000[] = {
#include "levels/lll/14.rgba16.inc.c"
};
// 0x07007800 - 0x07008000
ALIGNED8 static const Texture lll_seg7_texture_07007800[] = {
ALIGNED8 const Texture lll_seg7_texture_07007800[] = {
#include "levels/lll/15.rgba16.inc.c"
};
// 0x07008000 - 0x07008800
ALIGNED8 static const Texture lll_seg7_texture_07008000[] = {
ALIGNED8 const Texture lll_seg7_texture_07008000[] = {
#include "levels/lll/16.rgba16.inc.c"
};
// 0x07008800 - 0x07009000
ALIGNED8 static const Texture lll_seg7_texture_07008800[] = {
ALIGNED8 const Texture lll_seg7_texture_07008800[] = {
#include "levels/lll/17.rgba16.inc.c"
};
// 0x07009000 - 0x07009800
ALIGNED8 static const Texture lll_seg7_texture_07009000[] = {
ALIGNED8 const Texture lll_seg7_texture_07009000[] = {
#include "levels/lll/18.rgba16.inc.c"
};
// 0x07009800 - 0x0700A000
ALIGNED8 static const Texture lll_seg7_texture_07009800[] = {
ALIGNED8 const Texture lll_seg7_texture_07009800[] = {
#include "levels/lll/19.rgba16.inc.c"
};
// 0x0700A000 - 0x0700A800
ALIGNED8 static const Texture lll_seg7_texture_0700A000[] = {
ALIGNED8 const Texture lll_seg7_texture_0700A000[] = {
#include "levels/lll/20.rgba16.inc.c"
};
// 0x0700A800 - 0x0700B000
ALIGNED8 static const Texture lll_seg7_texture_0700A800[] = {
ALIGNED8 const Texture lll_seg7_texture_0700A800[] = {
#include "levels/lll/21.rgba16.inc.c"
};
// 0x0700B000 - 0x0700B800
ALIGNED8 static const Texture lll_seg7_texture_0700B000[] = {
ALIGNED8 const Texture lll_seg7_texture_0700B000[] = {
#include "levels/lll/22.rgba16.inc.c"
};
// 0x0700B800 - 0x0700C000
ALIGNED8 static const Texture lll_seg7_texture_0700B800[] = {
ALIGNED8 const Texture lll_seg7_texture_0700B800[] = {
#include "levels/lll/23.rgba16.inc.c"
};
// 0x0700C000 - 0x0700C800
ALIGNED8 static const Texture lll_seg7_texture_0700C000[] = {
ALIGNED8 const Texture lll_seg7_texture_0700C000[] = {
#include "levels/lll/24.rgba16.inc.c"
};
// 0x0700C800 - 0x0700D000
ALIGNED8 static const Texture lll_seg7_texture_0700C800[] = {
ALIGNED8 const Texture lll_seg7_texture_0700C800[] = {
#include "levels/lll/25.rgba16.inc.c"
};
// 0x0700D000 - 0x0700D200
ALIGNED8 static const Texture lll_seg7_texture_0700D000[] = {
ALIGNED8 const Texture lll_seg7_texture_0700D000[] = {
#include "levels/lll/26.rgba16.inc.c"
};
// 0x0700D200 - 0x0700D400
ALIGNED8 static const Texture lll_seg7_texture_0700D200[] = {
ALIGNED8 const Texture lll_seg7_texture_0700D200[] = {
#include "levels/lll/27.ia16.inc.c"
};
// 0x0700D400 - 0x0700DC00
ALIGNED8 static const Texture lll_seg7_texture_0700D400[] = {
ALIGNED8 const Texture lll_seg7_texture_0700D400[] = {
#include "levels/lll/28.rgba16.inc.c"
};
// 0x0700DC00 - 0x0700E400
ALIGNED8 static const Texture lll_seg7_texture_0700DC00[] = {
ALIGNED8 const Texture lll_seg7_texture_0700DC00[] = {
#include "levels/lll/29.rgba16.inc.c"
};
// 0x0700E400 - 0x0700EC00
ALIGNED8 static const Texture lll_seg7_texture_0700E400[] = {
ALIGNED8 const Texture lll_seg7_texture_0700E400[] = {
#include "levels/lll/30.rgba16.inc.c"
};
// 0x0700EC00 - 0x0700F400
ALIGNED8 static const Texture lll_seg7_texture_0700EC00[] = {
ALIGNED8 const Texture lll_seg7_texture_0700EC00[] = {
#include "levels/lll/31.rgba16.inc.c"
};
// 0x0700F400 - 0x0700FC00
ALIGNED8 static const Texture lll_seg7_texture_0700F400[] = {
ALIGNED8 const Texture lll_seg7_texture_0700F400[] = {
#include "levels/lll/32.rgba16.inc.c"
};

File diff suppressed because it is too large Load diff

View file

@ -1,14 +1,14 @@
// 0x07000000 - 0x07000002
ALIGNED8 static const Texture pss_seg7_texture_07000000[] = {
ALIGNED8 const Texture pss_seg7_texture_07000000[] = {
#include "levels/pss/0.rgba16.inc.c"
};
// 0x07000800 - 0x07000802
ALIGNED8 static const Texture pss_seg7_texture_07000800[] = {
ALIGNED8 const Texture pss_seg7_texture_07000800[] = {
#include "levels/pss/1.ia16.inc.c"
};
// 0x07001000 - 0x07001002
ALIGNED8 static const Texture pss_seg7_texture_07001000[] = {
ALIGNED8 const Texture pss_seg7_texture_07001000[] = {
#include "levels/pss/2.rgba16.inc.c"
};

View file

@ -1,14 +1,14 @@
// 0x07000000 - 0x07000800
ALIGNED8 static const Texture texture_quarter_flying_carpet[] = {
ALIGNED8 const Texture texture_quarter_flying_carpet[] = {
#include "levels/rr/quarter_flying_carpet.rgba16.inc.c"
};
// 0x07000800 - 0x07001800
ALIGNED8 static const Texture rr_seg7_texture_07000800[] = {
ALIGNED8 const Texture rr_seg7_texture_07000800[] = {
#include "levels/rr/1.rgba16.inc.c"
};
// 0x07001800 - 0x07002000
ALIGNED8 static const Texture rr_seg7_texture_07001800[] = {
ALIGNED8 const Texture rr_seg7_texture_07001800[] = {
#include "levels/rr/2.rgba16.inc.c"
};

View file

@ -1,24 +1,24 @@
// 0x07000000 - 0x07000800
ALIGNED8 static const Texture sl_seg7_texture_07000000[] = {
ALIGNED8 const Texture sl_seg7_texture_07000000[] = {
#include "levels/sl/0.rgba16.inc.c"
};
// 0x07000800 - 0x07001000
ALIGNED8 static const Texture sl_seg7_texture_07000800[] = {
ALIGNED8 const Texture sl_seg7_texture_07000800[] = {
#include "levels/sl/1.rgba16.inc.c"
};
// 0x07001000 - 0x07001800
ALIGNED8 static const Texture sl_seg7_texture_07001000[] = {
ALIGNED8 const Texture sl_seg7_texture_07001000[] = {
#include "levels/sl/2.rgba16.inc.c"
};
// 0x07001800 - 0x07002000
ALIGNED8 static const Texture sl_seg7_texture_07001800[] = {
ALIGNED8 const Texture sl_seg7_texture_07001800[] = {
#include "levels/sl/3.rgba16.inc.c"
};
// 0x07002000 - 0x07002800
ALIGNED8 static const Texture sl_seg7_texture_07002000[] = {
ALIGNED8 const Texture sl_seg7_texture_07002000[] = {
#include "levels/sl/4.rgba16.inc.c"
};

View file

@ -1,10 +1,10 @@
// 0x07000000 - 0x07000800
ALIGNED8 static const Texture ssl_seg7_texture_07000000[] = {
ALIGNED8 const Texture ssl_seg7_texture_07000000[] = {
#include "levels/ssl/0.rgba16.inc.c"
};
// 0x07000800 - 0x07001000
ALIGNED8 static const Texture ssl_seg7_texture_07000800[] = {
ALIGNED8 const Texture ssl_seg7_texture_07000800[] = {
#include "levels/ssl/1.ia16.inc.c"
};
@ -14,21 +14,21 @@ ALIGNED8 const Texture ssl_pyramid_sand[] = {
};
// 0x07001800 - 0x07002000
ALIGNED8 static const Texture ssl_seg7_texture_07001800[] = {
ALIGNED8 const Texture ssl_seg7_texture_07001800[] = {
#include "levels/ssl/3.rgba16.inc.c"
};
// 0x07002000 - 0x07002800
ALIGNED8 static const Texture ssl_seg7_texture_07002000[] = {
ALIGNED8 const Texture ssl_seg7_texture_07002000[] = {
#include "levels/ssl/4.rgba16.inc.c"
};
// 0x07002800 - 0x07003800
ALIGNED8 static const Texture ssl_seg7_texture_07002800[] = {
ALIGNED8 const Texture ssl_seg7_texture_07002800[] = {
#include "levels/ssl/5.rgba16.inc.c"
};
// 0x07003800 - 0x07004000
ALIGNED8 static const Texture ssl_seg7_texture_07003800[] = {
ALIGNED8 const Texture ssl_seg7_texture_07003800[] = {
#include "levels/ssl/6.rgba16.inc.c"
};

View file

@ -5,22 +5,22 @@ static const Lights1 ssl_seg7_lights_0700BF90 = gdSPDefLights1(
);
// 0x0700BFA8 - 0x0700C7A8
ALIGNED8 static const Texture ssl_seg7_texture_0700BFA8[] = {
ALIGNED8 const Texture ssl_seg7_texture_0700BFA8[] = {
#include "levels/ssl/8.rgba16.inc.c"
};
// 0x0700C7A8 - 0x0700D7A8
ALIGNED8 static const Texture ssl_seg7_texture_0700C7A8[] = {
ALIGNED8 const Texture ssl_seg7_texture_0700C7A8[] = {
#include "levels/ssl/9.rgba16.inc.c"
};
// 0x0700D7A8 - 0x0700E7A8
ALIGNED8 static const Texture ssl_seg7_texture_0700D7A8[] = {
ALIGNED8 const Texture ssl_seg7_texture_0700D7A8[] = {
#include "levels/ssl/10.rgba16.inc.c"
};
// 0x0700E7A8 - 0x0700F7A8
ALIGNED8 static const Texture ssl_seg7_texture_0700E7A8[] = {
ALIGNED8 const Texture ssl_seg7_texture_0700E7A8[] = {
#include "levels/ssl/11.rgba16.inc.c"
};

View file

@ -1,9 +1,9 @@
// 0x07000000 - 0x07000002
ALIGNED8 static const Texture thi_seg7_texture_07000000[] = {
ALIGNED8 const Texture thi_seg7_texture_07000000[] = {
#include "levels/thi/0.rgba16.inc.c"
};
// 0x07000800 - 0x07000802
ALIGNED8 static const Texture thi_seg7_texture_07000800[] = {
ALIGNED8 const Texture thi_seg7_texture_07000800[] = {
#include "levels/thi/1.rgba16.inc.c"
};

View file

@ -1,19 +1,19 @@
// 0x07000000 - 0x07001000
ALIGNED8 static const Texture totwc_seg7_texture_07000000[] = {
ALIGNED8 const Texture totwc_seg7_texture_07000000[] = {
#include "levels/totwc/0.rgba16.inc.c"
};
// 0x07001000 - 0x07001800
ALIGNED8 static const Texture totwc_seg7_texture_07001000[] = {
ALIGNED8 const Texture totwc_seg7_texture_07001000[] = {
#include "levels/totwc/1.rgba16.inc.c"
};
// 0x07001800 - 0x07002000
ALIGNED8 static const Texture totwc_seg7_texture_07001800[] = {
ALIGNED8 const Texture totwc_seg7_texture_07001800[] = {
#include "levels/totwc/2.rgba16.inc.c"
};
// 0x07002000 - 0x07002800
ALIGNED8 static const Texture totwc_seg7_texture_07002000[] = {
ALIGNED8 const Texture totwc_seg7_texture_07002000[] = {
#include "levels/totwc/3.ia16.inc.c"
};

View file

@ -1,9 +1,9 @@
// 0x07000000 - 0x07000800
ALIGNED8 static const Texture ttc_seg7_texture_07000000[] = {
ALIGNED8 const Texture ttc_seg7_texture_07000000[] = {
#include "levels/ttc/0.rgba16.inc.c"
};
// 0x07000800 - 0x07001000
ALIGNED8 static const Texture ttc_seg7_texture_07000800[] = {
ALIGNED8 const Texture ttc_seg7_texture_07000800[] = {
#include "levels/ttc/1.rgba16.inc.c"
};

View file

@ -545,7 +545,7 @@ static const Gfx ttm_seg7_painting_dl_07012E98[] = {
};
// 0x07012EF8 - 0x07012F78
ALIGNED8 static const Texture *const ttm_seg7_painting_textures_07012EF8[] = {
ALIGNED8 const Texture *const ttm_seg7_painting_textures_07012EF8[] = {
ttm_seg7_texture_07004000, ttm_seg7_texture_07003000,
};

View file

@ -17,7 +17,7 @@ static const Lights1 ttm_seg7_lights_0702AD18 = gdSPDefLights1(
);
// 0x0702AD30 - 0x0702B530
ALIGNED8 static const Texture ttm_seg7_texture_0702AD30[] = {
ALIGNED8 const Texture ttm_seg7_texture_0702AD30[] = {
#include "levels/ttm/8.rgba16.inc.c"
};

View file

@ -1,39 +1,39 @@
// 0x07000000 - 0x07001000
ALIGNED8 static const Texture ttm_seg7_texture_07000000[] = {
ALIGNED8 const Texture ttm_seg7_texture_07000000[] = {
#include "levels/ttm/0.ia16.inc.c"
};
// 0x07000800 - 0x07001800
ALIGNED8 static const Texture ttm_seg7_texture_07000800[] = {
ALIGNED8 const Texture ttm_seg7_texture_07000800[] = {
#include "levels/ttm/1.rgba16.inc.c"
};
// 0x07001000 - 0x07002000
ALIGNED8 static const Texture ttm_seg7_texture_07001000[] = {
ALIGNED8 const Texture ttm_seg7_texture_07001000[] = {
#include "levels/ttm/2.rgba16.inc.c"
};
// 0x07001800 - 0x07002800
ALIGNED8 static const Texture ttm_seg7_texture_07001800[] = {
ALIGNED8 const Texture ttm_seg7_texture_07001800[] = {
#include "levels/ttm/3.rgba16.inc.c"
};
// 0x07002000 - 0x07003000
ALIGNED8 static const Texture ttm_seg7_texture_07002000[] = {
ALIGNED8 const Texture ttm_seg7_texture_07002000[] = {
#include "levels/ttm/4.rgba16.inc.c"
};
// 0x07002800 - 0x07003800
ALIGNED8 static const Texture ttm_seg7_texture_07002800[] = {
ALIGNED8 const Texture ttm_seg7_texture_07002800[] = {
#include "levels/ttm/5.rgba16.inc.c"
};
// 0x07003000 - 0x07004000
ALIGNED8 static const Texture ttm_seg7_texture_07003000[] = {
ALIGNED8 const Texture ttm_seg7_texture_07003000[] = {
#include "levels/ttm/6.rgba16.inc.c"
};
// 0x07004000 - 0x07005000
ALIGNED8 static const Texture ttm_seg7_texture_07004000[] = {
ALIGNED8 const Texture ttm_seg7_texture_07004000[] = {
#include "levels/ttm/7.rgba16.inc.c"
};

View file

@ -1,19 +1,19 @@
// 0x07000000 - 0x07000800
ALIGNED8 static const Texture vcutm_seg7_texture_07000000[] = {
ALIGNED8 const Texture vcutm_seg7_texture_07000000[] = {
#include "levels/vcutm/0.rgba16.inc.c"
};
// 0x07000800 - 0x07001800
ALIGNED8 static const Texture vcutm_seg7_texture_07000800[] = {
ALIGNED8 const Texture vcutm_seg7_texture_07000800[] = {
#include "levels/vcutm/1.rgba16.inc.c"
};
// 0x07001800 - 0x07002800
ALIGNED8 static const Texture vcutm_seg7_texture_07001800[] = {
ALIGNED8 const Texture vcutm_seg7_texture_07001800[] = {
#include "levels/vcutm/2.rgba16.inc.c"
};
// 0x07002800 - 0x07003000
ALIGNED8 static const Texture vcutm_seg7_texture_07002800[] = {
ALIGNED8 const Texture vcutm_seg7_texture_07002800[] = {
#include "levels/vcutm/3.rgba16.inc.c"
};

View file

@ -1,24 +1,24 @@
// 0x07000000 - 0x07000800
ALIGNED8 static const Texture wdw_seg7_texture_07000000[] = {
ALIGNED8 const Texture wdw_seg7_texture_07000000[] = {
#include "levels/wdw/0.rgba16.inc.c"
};
// 0x07000800 - 0x07001000
ALIGNED8 static const Texture wdw_seg7_texture_07000800[] = {
ALIGNED8 const Texture wdw_seg7_texture_07000800[] = {
#include "levels/wdw/1.rgba16.inc.c"
};
// 0x07001000 - 0x07001800
ALIGNED8 static const Texture wdw_seg7_texture_07001000[] = {
ALIGNED8 const Texture wdw_seg7_texture_07001000[] = {
#include "levels/wdw/2.rgba16.inc.c"
};
// 0x07001800 - 0x07002000
ALIGNED8 static const Texture wdw_seg7_texture_07001800[] = {
ALIGNED8 const Texture wdw_seg7_texture_07001800[] = {
#include "levels/wdw/3.rgba16.inc.c"
};
// 0x07002000 - 0x07002800
ALIGNED8 static const Texture wdw_seg7_texture_07002000[] = {
ALIGNED8 const Texture wdw_seg7_texture_07002000[] = {
#include "levels/wdw/4.rgba16.inc.c"
};

View file

@ -1,29 +1,29 @@
// 0x07000000 - 0x07000800
ALIGNED8 static const Texture wf_seg7_texture_07000000[] = {
ALIGNED8 const Texture wf_seg7_texture_07000000[] = {
#include "levels/wf/0.rgba16.inc.c"
};
// 0x07000800 - 0x07001000
ALIGNED8 static const Texture wf_seg7_texture_07000800[] = {
ALIGNED8 const Texture wf_seg7_texture_07000800[] = {
#include "levels/wf/1.rgba16.inc.c"
};
// 0x07001000 - 0x07001800
ALIGNED8 static const Texture wf_seg7_texture_07001000[] = {
ALIGNED8 const Texture wf_seg7_texture_07001000[] = {
#include "levels/wf/2.rgba16.inc.c"
};
// 0x07001800 - 0x07002000
ALIGNED8 static const Texture wf_seg7_texture_07001800[] = {
ALIGNED8 const Texture wf_seg7_texture_07001800[] = {
#include "levels/wf/3.rgba16.inc.c"
};
// 0x07002000 - 0x07002800
ALIGNED8 static const Texture wf_seg7_texture_07002000[] = {
ALIGNED8 const Texture wf_seg7_texture_07002000[] = {
#include "levels/wf/4.rgba16.inc.c"
};
// 0x07002800 - 0x07002900
ALIGNED8 static const Texture wf_seg7_texture_07002800[] = {
ALIGNED8 const Texture wf_seg7_texture_07002800[] = {
#include "levels/wf/5.ia8.inc.c"
};

View file

@ -1,24 +1,24 @@
// 0x07000000 - 0x07000800
ALIGNED8 static const Texture wmotr_seg7_texture_07000000[] = {
ALIGNED8 const Texture wmotr_seg7_texture_07000000[] = {
#include "levels/wmotr/0.rgba16.inc.c"
};
// 0x07000800 - 0x07000C00
ALIGNED8 static const Texture wmotr_seg7_texture_07000800[] = {
ALIGNED8 const Texture wmotr_seg7_texture_07000800[] = {
#include "levels/wmotr/1.rgba16.inc.c"
};
// 0x07000C00 - 0x07001400
ALIGNED8 static const Texture wmotr_seg7_texture_07000C00[] = {
ALIGNED8 const Texture wmotr_seg7_texture_07000C00[] = {
#include "levels/wmotr/2.rgba16.inc.c"
};
// 0x07001400 - 0x07001600
ALIGNED8 static const Texture wmotr_seg7_texture_07001400[] = {
ALIGNED8 const Texture wmotr_seg7_texture_07001400[] = {
#include "levels/wmotr/3.rgba16.inc.c"
};
// 0x07001600 - 0x07001800
ALIGNED8 static const Texture wmotr_seg7_texture_07001600[] = {
ALIGNED8 const Texture wmotr_seg7_texture_07001600[] = {
#include "levels/wmotr/4.rgba16.inc.c"
};

View file

@ -30,6 +30,7 @@ void init_scene_graph_node_links(struct GraphNode *graphNode, s32 type) {
graphNode->next = graphNode;
graphNode->parent = NULL;
graphNode->children = NULL;
graphNode->georef = NULL;
}
/**

View file

@ -30,7 +30,7 @@ struct Character gCharacters[CT_MAX] = {
.type = CT_MARIO,
.name = "Mario",
.hudHead = ',',
.hudHeadTexture = { .texture = texture_hud_char_mario_head, .bitSize = 8, .width = 16, .height = 16 },
.hudHeadTexture = { .texture = (u8*)texture_hud_char_mario_head, .bitSize = 8, .width = 16, .height = 16 },
.cameraHudHead = GLYPH_CAM_MARIO_HEAD,
.modelId = MODEL_MARIO,
.capModelId = MODEL_MARIOS_CAP,
@ -93,7 +93,7 @@ struct Character gCharacters[CT_MAX] = {
.type = CT_LUIGI,
.name = "Luigi",
.hudHead = '.',
.hudHeadTexture = { .texture = texture_hud_char_luigi_head, .bitSize = 8, .width = 16, .height = 16 },
.hudHeadTexture = { .texture = (u8*)texture_hud_char_luigi_head, .bitSize = 8, .width = 16, .height = 16 },
.cameraHudHead = GLYPH_CAM_LUIGI_HEAD,
.modelId = MODEL_LUIGI,
.capModelId = MODEL_LUIGIS_CAP,
@ -156,7 +156,7 @@ struct Character gCharacters[CT_MAX] = {
.type = CT_TOAD,
.name = "Toad",
.hudHead = '/',
.hudHeadTexture = { .texture = texture_hud_char_toad_head, .bitSize = 8, .width = 16, .height = 16 },
.hudHeadTexture = { .texture = (u8*)texture_hud_char_toad_head, .bitSize = 8, .width = 16, .height = 16 },
.cameraHudHead = GLYPH_CAM_TOAD_HEAD,
.modelId = MODEL_TOAD_PLAYER,
.capModelId = MODEL_TOADS_CAP,
@ -219,7 +219,7 @@ struct Character gCharacters[CT_MAX] = {
.type = CT_WALUIGI,
.name = "Waluigi",
.hudHead = 'z',
.hudHeadTexture = { .texture = texture_hud_char_waluigi_head, .bitSize = 8, .width = 16, .height = 16 },
.hudHeadTexture = { .texture = (u8*)texture_hud_char_waluigi_head, .bitSize = 8, .width = 16, .height = 16 },
.cameraHudHead = GLYPH_CAM_WALUIGI_HEAD,
.modelId = MODEL_WALUIGI,
.capModelId = MODEL_WALUIGIS_CAP,
@ -285,7 +285,7 @@ struct Character gCharacters[CT_MAX] = {
.type = CT_WARIO,
.name = "Wario",
.hudHead = 'x',
.hudHeadTexture = { .texture = texture_hud_char_wario_head, .bitSize = 8, .width = 16, .height = 16 },
.hudHeadTexture = { .texture = (u8*)texture_hud_char_wario_head, .bitSize = 8, .width = 16, .height = 16 },
.cameraHudHead = GLYPH_CAM_WARIO_HEAD,
.modelId = MODEL_WARIO,
.capModelId = MODEL_WARIOS_CAP,

View file

@ -13,15 +13,15 @@ extern Gfx dl_rgba16_text_begin[];
extern Gfx dl_rgba16_text_end[];
extern Gfx dl_ia_text_begin[];
extern Gfx dl_ia_text_end[];
extern u8 texture_transition_star_half[];
extern u8 texture_transition_circle_half[];
extern u8 texture_transition_mario[];
extern u8 texture_transition_bowser_half[];
extern u8 texture_waterbox_water[];
extern u8 texture_waterbox_mist[];
extern u8 texture_waterbox_jrb_water[];
extern u8 texture_waterbox_unknown_water[];
extern u8 texture_waterbox_lava[];
extern Texture texture_transition_star_half[];
extern Texture texture_transition_circle_half[];
extern Texture texture_transition_mario[];
extern Texture texture_transition_bowser_half[];
extern Texture texture_waterbox_water[];
extern Texture texture_waterbox_mist[];
extern Texture texture_waterbox_jrb_water[];
extern Texture texture_waterbox_unknown_water[];
extern Texture texture_waterbox_lava[];
extern Gfx dl_proj_mtx_fullscreen[];
extern Gfx dl_draw_quad_verts_0123[];
extern Gfx dl_screen_transition_end[];

View file

@ -29,13 +29,13 @@ extern ALIGNED8 const u8 texture_hud_char_coin[];
extern ALIGNED8 const u8 texture_hud_char_star[];
struct GlobalTextures gGlobalTextures = {
.camera = { .texture = texture_hud_char_camera, .bitSize = 8, .width = 16, .height = 16 },
.lakitu = { .texture = texture_hud_char_lakitu, .bitSize = 8, .width = 16, .height = 16 },
.no_camera = { .texture = texture_hud_char_no_camera, .bitSize = 8, .width = 16, .height = 16 },
.arrow_up = { .texture = texture_hud_char_arrow_up, .bitSize = 8, .width = 8, .height = 8 },
.arrow_down = { .texture = texture_hud_char_arrow_down, .bitSize = 8, .width = 8, .height = 8 },
.coin = { .texture = texture_hud_char_coin, .bitSize = 8, .width = 16, .height = 16 },
.star = { .texture = texture_hud_char_star, .bitSize = 8, .width = 16, .height = 16 },
.camera = { .texture = (u8*)texture_hud_char_camera, .bitSize = 8, .width = 16, .height = 16 },
.lakitu = { .texture = (u8*)texture_hud_char_lakitu, .bitSize = 8, .width = 16, .height = 16 },
.no_camera = { .texture = (u8*)texture_hud_char_no_camera, .bitSize = 8, .width = 16, .height = 16 },
.arrow_up = { .texture = (u8*)texture_hud_char_arrow_up, .bitSize = 8, .width = 8, .height = 8 },
.arrow_down = { .texture = (u8*)texture_hud_char_arrow_down, .bitSize = 8, .width = 8, .height = 8 },
.coin = { .texture = (u8*)texture_hud_char_coin, .bitSize = 8, .width = 16, .height = 16 },
.star = { .texture = (u8*)texture_hud_char_star, .bitSize = 8, .width = 16, .height = 16 },
};
static void djui_hud_position_translate(f32* x, f32* y) {
@ -156,7 +156,7 @@ void djui_hud_print_text(const char* message, float x, float y, float scale) {
gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW);
}
static void djui_hud_render_texture_raw(const u8* texture, u32 bitSize, u32 width, u32 height, f32 x, f32 y, f32 scaleW, f32 scaleH) {
void djui_hud_render_texture_raw(const u8* texture, u32 bitSize, u32 width, u32 height, f32 x, f32 y, f32 scaleW, f32 scaleH) {
gDjuiHudUtilsZ += 0.01f;
// translate position
@ -204,4 +204,4 @@ void djui_hud_render_rect(f32 x, f32 y, f32 width, f32 height) {
// pop
gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW);
}
}

View file

@ -40,6 +40,7 @@ f32 djui_hud_get_mouse_y(void);
f32 djui_hud_measure_text(const char* message);
void djui_hud_print_text(const char* message, float x, float y, float scale);
void djui_hud_render_texture(struct TextureInfo* texInfo, f32 x, f32 y, f32 scaleW, f32 scaleH);
void djui_hud_render_texture_raw(const u8* texture, u32 bitSize, u32 width, u32 height, f32 x, f32 y, f32 scaleW, f32 scaleH);
void djui_hud_render_rect(f32 x, f32 y, f32 width, f32 height);
#endif

View file

@ -9,6 +9,7 @@
#include "audio/external.h"
#include "object_fields.h"
#include "engine/math_util.h"
#include "pc/djui/djui_hud_utils.h"
bool smlua_functions_valid_param_count(lua_State* L, int expected) {
int top = lua_gettop(L);
@ -83,7 +84,7 @@ int smlua_func_reset_level(lua_State* L) {
LOG_LUA_LINE("This function can only be used in single-player");
return 0;
}
if(!smlua_functions_valid_param_count(L, 0)) { return 0; }
gChangeLevel = gCurrLevelNum;
@ -184,6 +185,92 @@ int smlua_func_network_send_to(lua_State* L) {
network_send_lua_custom(false);
}
//////////////
// Textures //
//////////////
int smlua_func_get_texture_info(lua_State* L) {
if (!smlua_functions_valid_param_count(L, 1)) { return 0; }
if (lua_type(L, -1) != LUA_TSTRING) {
LOG_LUA_LINE("Invalid type passed to get_texture_info(): %u", lua_type(L, -1));
lua_pop(L, 1); // pop value
return 0;
}
struct TextureInfo texInfo = { 0 };
const char* textureName = smlua_to_string(L, -1);
if (!dynos_texture_get(textureName, &texInfo)) {
LOG_LUA_LINE("Could not find texture info for '%s'", textureName);
return 0;
}
lua_newtable(L);
lua_pushstring(L, "texture");
smlua_push_pointer(L, LVT_U8_P, texInfo.texture);
lua_settable(L, -3);
lua_pushstring(L, "bitSize");
lua_pushinteger(L, texInfo.bitSize);
lua_settable(L, -3);
lua_pushstring(L, "width");
lua_pushinteger(L, texInfo.width);
lua_settable(L, -3);
lua_pushstring(L, "height");
lua_pushinteger(L, texInfo.height);
lua_settable(L, -3);
return 1;
}
int smlua_func_djui_hud_render_texture(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 5)) { return 0; }
struct TextureInfo tmpTexInfo = { 0 };
struct TextureInfo* texInfo = &tmpTexInfo;
if (smlua_is_cobject(L, 1, LOT_TEXTUREINFO)) {
texInfo = (struct TextureInfo*)smlua_to_cobject(L, 1, LOT_TEXTUREINFO);
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter 1"); return 0; }
} else {
int top = lua_gettop(L);
lua_pushvalue(L, 1);
lua_pushstring(L, "texture");
lua_gettable(L, top+1);
tmpTexInfo.texture = smlua_to_cpointer(L, lua_gettop(L), LVT_U8_P);
lua_pop(L, 1);
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter 1's 'texture' field"); return 0; }
tmpTexInfo.bitSize = smlua_get_integer_field(top+1, "bitSize");
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter 1's 'bitSize' field"); return 0; }
tmpTexInfo.width = smlua_get_integer_field(top+1, "width");
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter 1's 'width' field"); return 0; }
tmpTexInfo.height = smlua_get_integer_field(top+1, "height");
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter 1's 'height' field"); return 0; }
lua_settop(L, top);
}
f32 x = smlua_to_number(L, 2);
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter 2"); return 0; }
f32 y = smlua_to_number(L, 3);
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter 3"); return 0; }
f32 scaleW = smlua_to_number(L, 4);
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter 4"); return 0; }
f32 scaleH = smlua_to_number(L, 5);
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter 5"); return 0; }
djui_hud_render_texture_raw(texInfo->texture, texInfo->bitSize, texInfo->width, texInfo->height, x, y, scaleW, scaleH);
return 1;
}
//////////
// bind //
//////////
@ -201,4 +288,6 @@ void smlua_bind_functions(void) {
smlua_bind_function(L, "reset_level", smlua_func_reset_level);
smlua_bind_function(L, "network_send", smlua_func_network_send);
smlua_bind_function(L, "network_send_to", smlua_func_network_send_to);
smlua_bind_function(L, "get_texture_info", smlua_func_get_texture_info);
smlua_bind_function(L, "djui_hud_render_texture", smlua_func_djui_hud_render_texture);
}

View file

@ -7267,25 +7267,6 @@ int smlua_func_djui_hud_render_rect(lua_State* L) {
return 1;
}
int smlua_func_djui_hud_render_texture(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 5)) { return 0; }
struct TextureInfo* texInfo = (struct TextureInfo*)smlua_to_cobject(L, 1, LOT_TEXTUREINFO);
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter 1"); return 0; }
f32 x = smlua_to_number(L, 2);
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter 2"); return 0; }
f32 y = smlua_to_number(L, 3);
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter 3"); return 0; }
f32 scaleW = smlua_to_number(L, 4);
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter 4"); return 0; }
f32 scaleH = smlua_to_number(L, 5);
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter 5"); return 0; }
djui_hud_render_texture(texInfo, x, y, scaleW, scaleH);
return 1;
}
int smlua_func_djui_hud_set_color(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 4)) { return 0; }
@ -16585,7 +16566,6 @@ void smlua_bind_functions_autogen(void) {
smlua_bind_function(L, "djui_hud_measure_text", smlua_func_djui_hud_measure_text);
smlua_bind_function(L, "djui_hud_print_text", smlua_func_djui_hud_print_text);
smlua_bind_function(L, "djui_hud_render_rect", smlua_func_djui_hud_render_rect);
smlua_bind_function(L, "djui_hud_render_texture", smlua_func_djui_hud_render_texture);
smlua_bind_function(L, "djui_hud_set_color", smlua_func_djui_hud_set_color);
smlua_bind_function(L, "djui_hud_set_font", smlua_func_djui_hud_set_font);
smlua_bind_function(L, "djui_hud_set_resolution", smlua_func_djui_hud_set_resolution);

View file

@ -117,6 +117,39 @@ LuaFunction smlua_to_lua_function(lua_State* L, int index) {
return luaL_ref(L, LUA_REGISTRYINDEX);
}
bool smlua_is_cobject(lua_State* L, int index, u16 lot) {
int top = lua_gettop(L);
bool ret = true;
s32 indexType = lua_type(L, index);
if (indexType != LUA_TTABLE) {
ret = false;
goto result;
}
lua_getfield(L, index, "_lot");
if (lua_type(L, -1) != LUA_TNUMBER) {
ret = false;
goto result;
}
enum LuaObjectType objLot = smlua_to_integer(L, -1);
if (!gSmLuaConvertSuccess) {
gSmLuaConvertSuccess = true;
ret = false;
goto result;
}
if (lot != objLot) {
ret = false;
goto result;
}
result:
lua_settop(L, top);
return ret;
}
void* smlua_to_cobject(lua_State* L, int index, u16 lot) {
s32 indexType = lua_type(L, index);
if (indexType == LUA_TNIL) { return NULL; }

View file

@ -17,6 +17,7 @@ lua_Integer smlua_to_integer(lua_State* L, int index);
lua_Number smlua_to_number(lua_State* L, int index);
const char* smlua_to_string(lua_State* L, int index);
LuaFunction smlua_to_lua_function(lua_State* L, int index);
bool smlua_is_cobject(lua_State* L, int index, u16 lot);
void* smlua_to_cobject(lua_State* L, int index, u16 lot);
void* smlua_to_cpointer(lua_State* L, int index, u16 lvt);
struct LSTNetworkType smlua_to_lnt(lua_State* L, int index);

View file

@ -79,16 +79,16 @@ void hud_render_power_meter(s32 health, f32 x, f32 y, f32 width, f32 height) {
extern const u8 texture_power_meter_two_segments[];
extern const u8 texture_power_meter_one_segments[];
static struct TextureInfo sPowerMeterTexturesInfo[] = {
{ texture_power_meter_left_side, 8, 32, 64 },
{ texture_power_meter_right_side, 8, 32, 64 },
{ texture_power_meter_one_segments, 8, 32, 32 },
{ texture_power_meter_two_segments, 8, 32, 32 },
{ texture_power_meter_three_segments, 8, 32, 32 },
{ texture_power_meter_four_segments, 8, 32, 32 },
{ texture_power_meter_five_segments, 8, 32, 32 },
{ texture_power_meter_six_segments, 8, 32, 32 },
{ texture_power_meter_seven_segments, 8, 32, 32 },
{ texture_power_meter_full, 8, 32, 32 },
{ (u8*)texture_power_meter_left_side, 8, 32, 64 },
{ (u8*)texture_power_meter_right_side, 8, 32, 64 },
{ (u8*)texture_power_meter_one_segments, 8, 32, 32 },
{ (u8*)texture_power_meter_two_segments, 8, 32, 32 },
{ (u8*)texture_power_meter_three_segments, 8, 32, 32 },
{ (u8*)texture_power_meter_four_segments, 8, 32, 32 },
{ (u8*)texture_power_meter_five_segments, 8, 32, 32 },
{ (u8*)texture_power_meter_six_segments, 8, 32, 32 },
{ (u8*)texture_power_meter_seven_segments, 8, 32, 32 },
{ (u8*)texture_power_meter_full, 8, 32, 32 },
};
djui_hud_render_texture(&sPowerMeterTexturesInfo[0], x, y, width / 64, height / 64);
djui_hud_render_texture(&sPowerMeterTexturesInfo[1], x + width / 2, y, width / 64, height / 64);

View file

@ -31,7 +31,7 @@ static void mod_activate_bin(struct ModFile* file) {
}
static void mod_activate_col(struct ModFile* file) {
// copy geo name
// copy col name
char colName[64] = { 0 };
if (snprintf(colName, 63, "%s", path_basename(file->relativePath)) < 0) {
LOG_ERROR("Truncated col name");
@ -53,8 +53,31 @@ static void mod_activate_col(struct ModFile* file) {
dynos_add_collision(file->cachedPath, colName);
}
static void mod_activate_tex(struct ModFile* file) {
// copy tex name
char texName[64] = { 0 };
if (snprintf(texName, 63, "%s", path_basename(file->relativePath)) < 0) {
LOG_ERROR("Truncated tex name");
return;
}
// remove '.tex'
char* g = texName;
while (*g != '\0') {
if (*g == '.') {
*g = '\0';
break;
}
g++;
}
// Add to custom actors
LOG_INFO("Activating DynOS tex: '%s', '%s'", file->cachedPath, texName);
dynos_add_texture(file->cachedPath, texName);
}
static void mod_activate_lvl(struct Mod* mod, struct ModFile* file) {
// copy geo name
// copy lvl name
char lvlName[64] = { 0 };
if (snprintf(lvlName, 63, "%s", path_basename(file->relativePath)) < 0) {
LOG_ERROR("Truncated lvl name");
@ -90,6 +113,9 @@ void mod_activate(struct Mod* mod) {
if (str_ends_with(file->relativePath, ".lvl")) {
mod_activate_lvl(mod, file);
}
if (str_ends_with(file->relativePath, ".tex")) {
mod_activate_tex(file);
}
}
}
@ -248,6 +274,44 @@ static bool mod_load_files(struct Mod* mod, char* modName, char* fullPath) {
}
}
// deal with textures directory
{
// concat textures directory
char texturesPath[SYS_MAX_PATH] = { 0 };
if (!concat_path(texturesPath, fullPath, "textures")) {
LOG_ERROR("Could not concat directory '%s' + '%s'", fullPath, "textures");
return false;
}
// open textures directory
struct dirent* dir = NULL;
DIR* d = opendir(texturesPath);
if (d) {
// iterate mod directory
char path[SYS_MAX_PATH] = { 0 };
char relativePath[SYS_MAX_PATH] = { 0 };
while ((dir = readdir(d)) != NULL) {
// sanity check / fill path[]
if (!directory_sanity_check(dir, texturesPath, path)) { continue; }
if (snprintf(relativePath, SYS_MAX_PATH - 1, "textures/%s", dir->d_name) < 0) {
LOG_ERROR("Could not concat textures path!");
return false;
}
// only consider tex files
if (!str_ends_with(path, ".tex")) {
continue;
}
// allocate file
struct ModFile* file = mod_allocate_file(mod, relativePath);
if (file == NULL) { return false; }
}
closedir(d);
}
}
// deal with levels directory
{
// concat levels directory