Implement SACT2.SP_CreatePixelOnly

This commit is contained in:
Nunuhara Cabbage
2019-11-26 17:20:47 -08:00
parent 4a7f703af1
commit 6517e9d8d8
3 changed files with 16 additions and 5 deletions
+2 -2
View File
@@ -74,7 +74,7 @@ hll_unimplemented(SACT2, SP_SaveCG);
// int SP_Create(int nSP, int nWidth, int nHeight, int nR, int nG, int nB, int nBlendRate)
hll_defun_inline(SP_Create, sact_SP_Create(a[0].i, a[1].i, a[2].i, a[3].i, a[4].i, a[5].i, a[6].i));
// int SP_CreatePixelOnly(int nSP, int nWidth, int nHeight)
hll_unimplemented(SACT2, SP_CreatePixelOnly);
hll_defun_inline(SP_CreatePixelOnly, sact_SP_CreatePixelOnly(a[0].i, a[1].i, a[2].i));
// int SP_CreateCustom(int nSP)
hll_unimplemented(SACT2, SP_CreateCustom);
// int SP_Delete(int nSP)
@@ -430,7 +430,7 @@ hll_warn_unimplemented(SACT2, Music_Fade, 1);
// int Music_StopFade(int nCh)
hll_warn_unimplemented(SACT2, Music_StopFade, 1);
// int Music_IsFade(int nCh)
hll_warn_unimplemented(SACT2, Music_IsFade, 1);
hll_warn_unimplemented(SACT2, Music_IsFade, 0);
// int Music_Pause(int nCh)
hll_warn_unimplemented(SACT2, Music_Pause, 1);
// int Music_Restart(int nCh)
+1
View File
@@ -52,6 +52,7 @@ int sact_SP_GetUnuseNum(int min);
int sact_SP_GetMaxZ(void);
int sact_SP_SetCG(int sp, int cg);
int sact_SP_Create(int sp, int width, int height, int r, int g, int b, int a);
int sact_SP_CreatePixelOnly(int sp, int width, int height);
int sact_SP_Delete(int sp);
int sact_SP_SetZ(int sp, int z);
int sact_SP_ExistsAlpha(int sp_no);
+13 -3
View File
@@ -123,15 +123,13 @@ int sact_SP_SetCG(int sp_no, int cg_no)
}
int sact_SP_Create(int sp_no, int width, int height, int r, int g, int b, int a)
static struct sact_sprite *create_sprite(int sp_no, int width, int height, int r, int g, int b, int a)
{
struct sact_sprite *sp;
if (sp_no < 0)
VM_ERROR("Invalid sprite number: %d", sp_no);
if (!(sp = sact_get_sprite(sp_no)))
sp = alloc_sprite(sp_no);
sp->color = (SDL_Color) { .r = r, .g = g, .b = b, .a = a };
sp->rect.w = width;
sp->rect.h = height;
@@ -141,6 +139,18 @@ int sact_SP_Create(int sp_no, int width, int height, int r, int g, int b, int a)
sp->cg = cg_init();
sprite_register(sp);
}
return sp;
}
int sact_SP_Create(int sp_no, int width, int height, int r, int g, int b, int a)
{
create_sprite(sp_no, width, height, r, g, b, a);
return 1;
}
int sact_SP_CreatePixelOnly(int sp_no, int width, int height)
{
create_sprite(sp_no, width, height, 0, 0, 0, 255);
return 1;
}