PartsEngine: Implement PartsFunc 103 (GetPartsCGSurfaceArea)

This commit is contained in:
kichikuou
2026-04-20 07:24:16 +09:00
parent 6dc62bffc8
commit e5087f0757
3 changed files with 17 additions and 0 deletions
+1
View File
@@ -37,6 +37,7 @@ bool PE_SetPartsCG_by_string_index(int parts_no, struct string *cg_no,
int sprite_deform, int state);
void PE_GetPartsCGName(int parts_no, struct string **cg_name, int state);
bool PE_SetPartsCGSurfaceArea(int parts_no, int x, int y, int w, int h, int state);
void PE_GetPartsCGSurfaceArea(int parts_no, int *x, int *y, int *w, int *h, int state);
int PE_GetPartsCGNumber(int parts_no, int state);
bool PE_SetLoopCG_by_index(int parts_no, int cg_no, int nr_frames, int frame_time, int state);
bool PE_SetLoopCG(int parts_no, struct string *cg_name, int start_no, int nr_frames,
+4
View File
@@ -127,6 +127,10 @@ static int PartsEngine_PartsFunc(int func_id, struct page **array_int,
REQUIRE_INTS(1);
ints[0].i = PE_get_system_controller();
return 1;
case 103: // void GetPartsCGSurfaceArea(int parts_no, int *x, int *y, int *w, int *h, int state)
REQUIRE_INTS(6);
PE_GetPartsCGSurfaceArea(ints[0].i, &ints[1].i, &ints[2].i, &ints[3].i, &ints[4].i, ints[5].i);
return 1;
case 162: // bool InitPartsMovie(int parts_no, int width, int height, int bg_r, int bg_g, int bg_b, int state)
REQUIRE_INTS(8);
ints[7].i = PE_init_parts_movie(ints[0].i, ints[1].i, ints[2].i, ints[3].i, ints[4].i, ints[5].i, ints[6].i);
+12
View File
@@ -1227,6 +1227,18 @@ bool PE_SetPartsCGSurfaceArea(int parts_no, int x, int y, int w, int h, int stat
return true;
}
void PE_GetPartsCGSurfaceArea(int parts_no, int *x, int *y, int *w, int *h, int state)
{
if (!parts_state_valid(--state))
return;
struct parts_cg *cg = parts_get_cg(parts_get(parts_no), state);
*x = cg->common.surface_area.x;
*y = cg->common.surface_area.y;
*w = cg->common.surface_area.w;
*h = cg->common.surface_area.h;
}
int PE_GetPartsCGNumber(int parts_no, int state)
{
if (!parts_state_valid(--state)) {