diff --git a/Tupfile b/Tupfile index 983212e6..dc650aa2 100644 --- a/Tupfile +++ b/Tupfile @@ -33,7 +33,6 @@ BMP2ARR = bin\\Pipeline\\bmp2arr.exe : th01/sprites/pellet.bmp |> !bmp2arr -sym sPELLET -of c -sw 8 -sh 8 -pshf inner |> th01/sprites/pellet.csp : th01/sprites/pellet_c.bmp |> !bmp2arr -sym _sPELLET_CLOUD -of asm -sw 16 -sh 16 |> th01/sprites/pellet_c.asp : th01/sprites/shape8x8.bmp |> !bmp2arr -sym _sSHAPE8X8 -of asm -sw 8 -sh 8 |> th01/sprites/shape8x8.asp -: th01/sprites/shape_in.bmp |> !bmp2arr -sym _sSHAPE_INVINCIBILITY -of asm -sw 8 -sh 8 |> th01/sprites/shape_in.asp : th02/sprites/pellet.bmp |> !bmp2arr -sym _sPELLET -of asm -sw 8 -sh 8 -pshf outer |> th02/sprites/pellet.asp : th02/sprites/sparks.bmp |> !bmp2arr -sym _sSPARKS -of asm -sw 8 -sh 8 -pshf outer |> th02/sprites/sparks.asp : th02/sprites/pointnum.bmp |> !bmp2arr -sym _sPOINTNUMS -of asm -sw 8 -sh 8 |> th02/sprites/pointnum.asp @@ -62,7 +61,6 @@ BMP2ARR = bin\\Pipeline\\bmp2arr.exe th01/sprites/laser_s.asp \ th01/sprites/pellet_c.asp \ th01/sprites/shape8x8.asp \ - th01/sprites/shape_in.asp \ |> !as |> bin\\th01\\reiiden.obj : th01_fuuin.asm |> !as |> bin\\th01\\fuuin.obj diff --git a/Tupfile.bat b/Tupfile.bat index 21244539..7fa90374 100644 --- a/Tupfile.bat +++ b/Tupfile.bat @@ -8,7 +8,6 @@ bin\\Pipeline\\bmp2arr.exe -q -i th01/sprites/laser_s.bmp -o th01/sprites/laser_ bin\\Pipeline\\bmp2arr.exe -q -i th01/sprites/pellet.bmp -o th01/sprites/pellet.csp -sym sPELLET -of c -sw 8 -sh 8 -pshf inner bin\\Pipeline\\bmp2arr.exe -q -i th01/sprites/pellet_c.bmp -o th01/sprites/pellet_c.asp -sym _sPELLET_CLOUD -of asm -sw 16 -sh 16 bin\\Pipeline\\bmp2arr.exe -q -i th01/sprites/shape8x8.bmp -o th01/sprites/shape8x8.asp -sym _sSHAPE8X8 -of asm -sw 8 -sh 8 -bin\\Pipeline\\bmp2arr.exe -q -i th01/sprites/shape_in.bmp -o th01/sprites/shape_in.asp -sym _sSHAPE_INVINCIBILITY -of asm -sw 8 -sh 8 bin\\Pipeline\\bmp2arr.exe -q -i th02/sprites/pellet.bmp -o th02/sprites/pellet.asp -sym _sPELLET -of asm -sw 8 -sh 8 -pshf outer bin\\Pipeline\\bmp2arr.exe -q -i th02/sprites/sparks.bmp -o th02/sprites/sparks.asp -sym _sSPARKS -of asm -sw 8 -sh 8 -pshf outer bin\\Pipeline\\bmp2arr.exe -q -i th02/sprites/pointnum.bmp -o th02/sprites/pointnum.asp -sym _sPOINTNUMS -of asm -sw 8 -sh 8 diff --git a/th01/main/player/inv_spr.cpp b/th01/main/player/inv_spr.cpp index afe8d6a9..991dc6d5 100644 --- a/th01/main/player/inv_spr.cpp +++ b/th01/main/player/inv_spr.cpp @@ -1,4 +1,4 @@ -#include "th01/sprites/shape_in.hpp" +#include "th01/sprites/shape8x8.hpp" #include "th01/main/shape.hpp" static const int INVINCIBILITY_SPRITE_COUNT = 8; @@ -17,7 +17,7 @@ void invincibility_sprites_update_and_render(bool16 invincible) #define sloppy_unput(i) \ egc_copy_rect_1_to_0_16( \ - sprites.left[i], sprites.top[i], 16, SHAPE_INVINCIBILITY_H \ + sprites.left[i], sprites.top[i], 16, sSHAPE8X8[0].h() \ ); if(!invincible) { @@ -52,12 +52,12 @@ void invincibility_sprites_update_and_render(bool16 invincible) // ZUN bug: Did you mean: `sprites.left[i]`? if( (sprites.top[i] >= 0) && - (sprites.top[i] < (RES_X - SHAPE_INVINCIBILITY_W)) + (sprites.top[i] < (RES_X - sSHAPE8X8[0].w())) ) { - shape_invincibility_put( + shape8x8_invincibility_put( sprites.left[i], sprites.top[i], - (sprites.frame[i] <= SHAPE_INVINCIBILITY_COUNT) + (sprites.frame[i] <= SHAPE8X8_INVINCIBILITY_CELS) ? (sprites.frame[i] - 1) : (INVINCIBILITY_SPRITE_FRAMES - sprites.frame[i]) ); diff --git a/th01/main/shape.cpp b/th01/main/shape.cpp index 2a9675d7..7a268383 100644 --- a/th01/main/shape.cpp +++ b/th01/main/shape.cpp @@ -1,5 +1,4 @@ #include "th01/sprites/shape8x8.hpp" -#include "th01/sprites/shape_in.hpp" #include "th01/main/shape.hpp" #define shape8x8_put(shape, left, top, col) \ @@ -102,27 +101,27 @@ void shape_ellipse_arc_sloppy_unput( } } -void shape_invincibility_put_with_mask_from_B_plane( +void shape8x8_invincibility_put_with_mask_from_B_plane( screen_x_t left, vram_y_t top, int cel ); -void shape_invincibility_put(screen_x_t left, vram_y_t top, int cel) +void shape8x8_invincibility_put(screen_x_t left, vram_y_t top, int cel) { if(left < 0) { return; } - shape_invincibility_put_with_mask_from_B_plane(left, top, cel); + shape8x8_invincibility_put_with_mask_from_B_plane(left, top, cel); vram_offset_t vram_offset = vram_offset_divmul(left, top); int first_bit = (left % BYTE_DOTS); - if(cel > (SHAPE_INVINCIBILITY_COUNT - 1)) { + if(cel > (SHAPE8X8_INVINCIBILITY_CELS - 1)) { return; } grcg_setcolor_rmw(10); - for(pixel_t y = 0; y < SHAPE_INVINCIBILITY_H; y++) { - #define sprite sSHAPE_INVINCIBILITY[cel][y] + for(pixel_t y = 0; y < sSHAPE8X8[0].h(); y++) { + #define sprite sSHAPE8X8[SHAPE8X8_INVINCIBILITY + cel][y] if(first_bit == 0) { grcg_put(vram_offset, sprite, 8); @@ -161,7 +160,7 @@ void shape_invincibility_put(screen_x_t left, vram_y_t top, int cel) // result, this unblitting attempt actually blits the sprite again, masked by // whatever was in VRAM plane B at the given position before calling this // function. -void shape_invincibility_put_with_mask_from_B_plane( +void shape8x8_invincibility_put_with_mask_from_B_plane( screen_x_t left, vram_y_t top, int cel ) { @@ -172,13 +171,13 @@ void shape_invincibility_put_with_mask_from_B_plane( vram_offset_t vram_offset = vram_offset_divmul(left, top); int first_bit = (left % BYTE_DOTS); - if(cel > (SHAPE_INVINCIBILITY_COUNT - 1)) { + if(cel > (SHAPE8X8_INVINCIBILITY_CELS - 1)) { return; } grcg_setcolor_rmw(10); - for(pixel_t y = 0; y < SHAPE_INVINCIBILITY_H; y++) { - #define sprite sSHAPE_INVINCIBILITY[cel][y] + for(pixel_t y = 0; y < sSHAPE8X8[0].h(); y++) { + #define sprite sSHAPE8X8[SHAPE8X8_INVINCIBILITY + cel][y] if(first_bit == 0) { dots8_t bg_B; diff --git a/th01/main/shape.hpp b/th01/main/shape.hpp index dca4f14c..4fc102cc 100644 --- a/th01/main/shape.hpp +++ b/th01/main/shape.hpp @@ -4,6 +4,10 @@ void shape8x8_diamond_put(screen_x_t left, vram_y_t top, int col); void shape8x8_star_put(screen_x_t left, vram_y_t top, int col); void shape8x8_flake_put(screen_x_t left, vram_y_t top, int col); +// Blits the given [cel] of the hardcoded invincibility sprites to the given +// position. +void shape8x8_invincibility_put(screen_x_t left, vram_y_t top, int cel); + void shape_ellipse_arc_put( screen_x_t center_x, vram_y_t center_y, @@ -27,7 +31,3 @@ void shape_ellipse_arc_sloppy_unput( unsigned char angle_start, unsigned char angle_end ); - -// Blits the given [cel] of the hardcoded invincibility sprites to -// (left, top). -void shape_invincibility_put(screen_x_t left, vram_y_t top, int cel); diff --git a/th01/sprites/shape8x8.bmp b/th01/sprites/shape8x8.bmp index 08f1c624..2c14a397 100644 Binary files a/th01/sprites/shape8x8.bmp and b/th01/sprites/shape8x8.bmp differ diff --git a/th01/sprites/shape8x8.hpp b/th01/sprites/shape8x8.hpp index 57099b9f..095aaabc 100644 --- a/th01/sprites/shape8x8.hpp +++ b/th01/sprites/shape8x8.hpp @@ -1,7 +1,13 @@ +static const int SHAPE8X8_INVINCIBILITY_CELS = 4; + typedef enum { SHAPE8X8_DIAMOND, SHAPE8X8_STAR, SHAPE8X8_FLAKE, + SHAPE8X8_INVINCIBILITY, + SHAPE8X8_INVINCIBILITY_last = ( + SHAPE8X8_INVINCIBILITY + SHAPE8X8_INVINCIBILITY_CELS - 1 + ), SHAPE8X8_COUNT } shape8x8_t; diff --git a/th01/sprites/shape_in.bmp b/th01/sprites/shape_in.bmp deleted file mode 100644 index bd89d555..00000000 Binary files a/th01/sprites/shape_in.bmp and /dev/null differ diff --git a/th01/sprites/shape_in.hpp b/th01/sprites/shape_in.hpp deleted file mode 100644 index 0cd16dc8..00000000 --- a/th01/sprites/shape_in.hpp +++ /dev/null @@ -1,7 +0,0 @@ -static const int SHAPE_INVINCIBILITY_COUNT = 4; -#define SHAPE_INVINCIBILITY_W 8 -#define SHAPE_INVINCIBILITY_H 8 - -extern const dot_rect_t( - SHAPE_INVINCIBILITY_W, SHAPE_INVINCIBILITY_H -) sSHAPE_INVINCIBILITY[SHAPE_INVINCIBILITY_COUNT]; diff --git a/th01_reiiden.asm b/th01_reiiden.asm index 821cfdc2..e059c694 100644 --- a/th01_reiiden.asm +++ b/th01_reiiden.asm @@ -6647,7 +6647,6 @@ main_23_TEXT segment byte public 'CODE' use16 extern @shape8x8_flake_put$qiii:proc extern @shape_ellipse_arc_put$qiiiiiucucuc:proc extern @shape_ellipse_arc_sloppy_unput$qiiiiucucuc:proc - extern @shape_invincibility_put$qiii:proc extern _graph_r_lineloop_put:proc extern _graph_r_lineloop_unput:proc main_23_TEXT ends @@ -41463,7 +41462,6 @@ include th01/hiscore/regist[data].asm include th01/main/boss/entity_a[data].asm include th01/formats/pf[data].asm include th01/sprites/shape8x8.asp -include th01/sprites/shape_in.asp aBomb db 'Bomb',0 aExtend db 'Extend!!',0 aVpf db '‚PäÝ',0