Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

API_CALLABLE + misc minor cleanup #1150

Merged
merged 4 commits into from
Jan 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 6 additions & 8 deletions include/enums.h
Original file line number Diff line number Diff line change
Expand Up @@ -2633,7 +2633,7 @@ enum EntityFlags {
ENTITY_FLAG_PARTNER_COLLISION = 0x00020000,
ENTITY_FLAG_DRAW_IF_CLOSE_HIDE_MODE2 = 0x00040000,
ENTITY_FLAG_IGNORE_DISTANCE_CULLING = 0x00080000,
ENTITY_FLAG_100000 = 0x00100000,
ENTITY_FLAG_USED = 0x00100000,
ENTITY_FLAG_200000 = 0x00200000,
ENTITY_FLAG_SHADOW_POS_DIRTY = 0x00400000,
ENTITY_FLAG_DARK_SHADOW = 0x00800000,
Expand Down Expand Up @@ -5044,13 +5044,6 @@ enum ModelTransformGroupFlags {
};

enum NpcDropFlags {
NPC_DROP_FLAG_1 = 0x01,
NPC_DROP_FLAG_2 = 0x02,
NPC_DROP_FLAG_4 = 0x04,
NPC_DROP_FLAG_8 = 0x08,
NPC_DROP_FLAG_10 = 0x10,
NPC_DROP_FLAG_20 = 0x20,
NPC_DROP_FLAG_40 = 0x40,
NPC_DROP_FLAG_80 = 0x80,
};

Expand Down Expand Up @@ -5168,6 +5161,11 @@ enum SpriteCompImgFXFlags {
SPR_IMGFX_FLAG_ALL = 0xF0000000,
};

enum SpriteShadingFlags {
SPR_SHADING_FLAG_ENABLED = 1,
SPR_SHADING_FLAG_SET_VIEWPORT = 2, // never set
};

enum MoveType {
MOVE_TYPE_NONE = 0,
MOVE_TYPE_HAMMER = 1,
Expand Down
86 changes: 65 additions & 21 deletions include/macros.h
Original file line number Diff line number Diff line change
Expand Up @@ -276,7 +276,7 @@

#define PACK_PAL_RGBA(r, g, b, a) (((r) << 11) | ((g) << 6) | ((b) << 1) | (a));

#define PM_RM_TILEMODE_B GBL_c1(G_BL_CLR_BL, G_BL_A_FOG, G_BL_CLR_IN, G_BL_1MA)
#define PM_RM_SHROUD GBL_c1(G_BL_CLR_BL, G_BL_A_FOG, G_BL_CLR_IN, G_BL_1MA)

#define PM_CC_01 0, 0, 0, TEXEL0, PRIMITIVE, 0, TEXEL0, 0
#define PM_CC_02 0, 0, 0, TEXEL0, TEXEL0, 0, PRIMITIVE, 0
Expand All @@ -288,47 +288,83 @@
#define PM_CC_PRIM_FULL_ALPHA 0, 0, 0, PRIMITIVE, 0, 0, 0, 1
#define PM_CC_PRIM_NO_ALPHA 0, 0, 0, PRIMITIVE, 0, 0, 0, 0
#define PM_CC_0A 0, 0, 0, 0, ENVIRONMENT, 0, TEXEL0, 0

#define PM_CC_0B 0, 0, 0, 0, ENVIRONMENT, 0, TEXEL1, 0
#define PM_CC_0C 0, 0, 0, 0, 0, 0, 0, COMBINED
#define PM_CC_0D 0, 0, 0, 0, SHADE, 0, TEXEL1, 0
#define PM_CC_0C 0, 0, 0, 0, 0, 0, 0, COMBINED

#define PM_CC_0E 0, 0, 0, TEXEL0, 0, 0, 0, 0
#define PM_CC_0F 0, 0, 0, TEXEL0, 0, 0, 0, 1
#define PM_CC_10 0, 0, 0, TEXEL0, 0, 0, 0, PRIMITIVE
#define PM_CC_11 0, 0, 0, TEXEL0, SHADE, 0, TEXEL0, 0
#define PM_CC_12 0, 0, 0, TEXEL0, TEXEL0, 0, SHADE, 0
#define PM_CC_13 TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, TEXEL1

#define PM_CC_MSG_UP_ARROW \
TEXEL0, 0, PRIMITIVE, 0, \
0, 0, 0, TEXEL1

#define PM_CC_14 PRIMITIVE, ENVIRONMENT, TEXEL1, ENVIRONMENT, PRIMITIVE, 0, TEXEL1, 0
#define PM_CC_15 PRIMITIVE, ENVIRONMENT, TEXEL1, ENVIRONMENT, 0, 0, 0, TEXEL1

#define PM_CC_16 COMBINED, 0, PRIMITIVE, 0, 0, 0, 0, COMBINED
// multiply the combined color from cycle1 with PRIMITIVE color; PRIMITIVE alpha is ignored
#define PM_CC2_MULTIPLY_PRIM COMBINED, 0, PRIMITIVE, 0, 0, 0, 0, COMBINED

// (COMB * PRIM) + ENV
#define PM_CC_17 COMBINED, 0, PRIMITIVE, ENVIRONMENT, 0, 0, 0, COMBINED

#define PM_CC_18 COMBINED, 0, SHADE, 0, 0, 0, 0, COMBINED
#define PM_CC_19 COMBINED, 0, SHADE, PRIMITIVE, 0, 0, 0, COMBINED
#define PM_CC_1B COMBINED, 0, PRIMITIVE, ENVIRONMENT, COMBINED, 0, SHADE, 0
// multiply the combined color from cycle1 with SHADE color; SHADE alpha is ignored
#define PM_CC2_MULTIPLY_SHADE COMBINED, 0, SHADE, 0, 0, 0, 0, COMBINED

#define PM_CC_NOISE NOISE, 0, SHADE_ALPHA, 0, 0, 0, 0, 1

#define PM_CC_1A TEXEL0, 0, PRIMITIVE_ALPHA, PRIMITIVE, 0, 0, 0, TEXEL0

// implements ENV_TINT_DEPTH for untextured models
// applies just the base color; depth-based fog color will be added during RPD blend step
// applies just the base color; depth-based fog color will be added during RDP blend step
// color = SHADE * PRIM_ALPHA + PRIM
// alpha = SHADE
#define PM_CC_NOTEX_TINT_FOG \
SHADE, 0, PRIMITIVE_ALPHA, PRIMITIVE, 0, 0, 0, SHADE
#define PM_CC_TINT_DEPTH_NOTEX \
SHADE, 0, PRIMITIVE_ALPHA, PRIMITIVE, \
0, 0, 0, SHADE

// implements ENV_TINT_DEPTH for single-textured or mipmaped models
// applies just the base color; depth-based fog color will be added during RDP blend step
// color = COMB * PRIM_ALPHA + PRIM
// alpha = COMB
#define PM_CC_TINT_DEPTH_NO_SHADE \
COMBINED, 0, PRIMITIVE_ALPHA, PRIMITIVE, \
0, 0, 0, COMBINED

// color = (COMB - PRIM) * PRIM_ALPHA + COMB
// alpha = COMB
#define PM_CC_20 \
COMBINED, PRIMITIVE, PRIMITIVE_ALPHA, COMBINED, \
0, 0, 0, COMBINED

#define PM_CC_TINT_DEPTH_MIPMAPS \
COMBINED, 0, SHADE, PRIMITIVE, \
0, 0, 0, COMBINED

// implements ENV_TINT_REMAP for untextured models
// color = SHADE * PRIM + ENV
// alpha = SHADE
#define PM_CC_NOTEX_TINT_REMAP \
SHADE, 0, PRIMITIVE, ENVIRONMENT, 0, 0, 0, SHADE
#define PM_CC_TINT_REMAP_NOTEX \
SHADE, 0, PRIMITIVE, ENVIRONMENT, \
0, 0, 0, SHADE

// implements ENV_TINT_REMAP for single-textured or mipmaped models
// NOTE: SHADE color is not used
// color = COMB * PRIM + ENV
// alpha = COMB
#define PM_CC_TINT_REMAP_NO_SHADE \
COMBINED, 0, PRIMITIVE, ENVIRONMENT, \
0, 0, 0, COMBINED

// implements ENV_TINT_REMAP for multi-textured models
// only SHADE alpha is used
// color = COMB * PRIM + ENV
// alpha = COMB * SHADE
#define PM_CC_TINT_REMAP_SHADE_ALPHA \
COMBINED, 0, PRIMITIVE, ENVIRONMENT, \
COMBINED, 0, SHADE, 0

#define PM_CC_20 COMBINED, PRIMITIVE, PRIMITIVE_ALPHA, COMBINED, 0, 0, 0, COMBINED
#define PM_CC_21 COMBINED, 0, PRIMITIVE_ALPHA, PRIMITIVE, 0, 0, 0, COMBINED
#define PM_CC_22 TEXEL0, TEXEL1, SHADE_ALPHA, TEXEL1, 0, 0, 0, TEXEL0
#define PM_CC_23 1, TEXEL0, PRIMITIVE, TEXEL0, 0, 0, 0, TEXEL0
#define PM_CC1_24 1, TEXEL0, PRIMITIVE, TEXEL0, 1, TEXEL0, TEXEL1, TEXEL0
Expand All @@ -340,7 +376,10 @@
#define PM_CC1_29 TEXEL0, SHADE, TEXEL0, TEXEL0, 1, TEXEL1, TEXEL0, TEXEL1
#define PM_CC2_29 TEXEL0, COMBINED, TEXEL0_ALPHA, TEXEL0, 1, TEXEL0, TEXEL1, TEXEL0

#define PM_CC_ALT_INTERFERENCE TEXEL1, 0, TEXEL0, 0, TEXEL1, 0, TEXEL0, 0
// same as G_CC_INTERFERENCE, except the roles of TEXEL0 and TEXEL1 are swapped
#define PM_CC_ALT_INTERFERENCE \
TEXEL1, 0, TEXEL0, 0, \
TEXEL1, 0, TEXEL0, 0

#define PM_CC_2B PRIMITIVE, 0, TEXEL1, 0, 0, 0, 0, TEXEL1
#define PM_CC_2C PRIMITIVE, 0, TEXEL1, 0, TEXEL1, 0, PRIMITIVE, 0
Expand All @@ -361,14 +400,15 @@
#define PM_CC_39 TEXEL1, K4, COMBINED_ALPHA, COMBINED, 0, 0, 0, 1

#define PM_CC_3A 0, 0, 0, PRIMITIVE, 1, TEXEL0, PRIMITIVE, TEXEL0
#define PM_CC_3B 0, 0, 0, SHADE, 1, 0, PRIMITIVE, 0

#define PM_CC_SCREEN_OVERLAY \
0, 0, 0, SHADE, \
1, 0, PRIMITIVE, 0

#define PM_CC_3C 0, 0, 0, PRIMITIVE, SHADE, 0, PRIMITIVE, 0

#define PM_CC_3D SHADE, ENVIRONMENT, TEXEL0, TEXEL0, PRIMITIVE, 0, TEXEL0, 0

#define PM_CC_3E 0, 0, 0, COMBINED, 0, 0, 0, PRIMITIVE

#define PM_CC_3F TEXEL0, 0, SHADE, 0, SHADE, 0, PRIMITIVE, 0

// animated tiles spreading over the screen when the game is reset
Expand All @@ -386,6 +426,10 @@
// alpha = PRIM
#define PM_CC_KKJ_SPILL_LIGHT TEXEL0, 0, SHADE, 0, 0, 0, 0, PRIMITIVE

// color = pass from cycle1
// alpha = PRIM
#define PM_CC_KKJ14_FIRE 0, 0, 0, COMBINED, 0, 0, 0, PRIMITIVE

// color = SHADE + PRIM
// alpha = PRIMITIVE * TEXEL0
#define PM_CC_DAMAGE_INDICATOR 1, 0, SHADE, PRIMITIVE, PRIMITIVE, 0, TEXEL0, 0
Expand Down
Loading
Loading