mirror of
https://github.com/nunuhara/xsystem4.git
synced 2026-10-02 20:08:03 +03:00
parts: add PARTS_UNINITIALIZED parts type
This commit is contained in:
+50
-49
@@ -152,6 +152,8 @@ static void parts_print_state(struct parts_state *state, int indent)
|
||||
indent_printf(indent, "hitbox = "); gfx_print_rectangle(&com->hitbox); printf(",\n");
|
||||
indent_printf(indent, "surface_area = "); gfx_print_rectangle(&com->surface_area); printf(",\n");
|
||||
switch (state->type) {
|
||||
case PARTS_UNINITIALIZED:
|
||||
break;
|
||||
case PARTS_CG:
|
||||
parts_cg_print(&state->cg, indent);
|
||||
break;
|
||||
@@ -353,57 +355,56 @@ static void parts_list_print(struct parts *parts, int indent)
|
||||
indent_printf(indent, parts->show ? "+ " : "- ");
|
||||
printf("parts %d ", parts->no);
|
||||
struct parts_state *state = &parts->states[parts->state];
|
||||
if (!state->common.texture.handle) {
|
||||
printf("(unititialized)\n");
|
||||
} else {
|
||||
switch (state->type) {
|
||||
case PARTS_CG:
|
||||
printf("(cg %d)\n", state->cg.no);
|
||||
break;
|
||||
case PARTS_TEXT:
|
||||
printf("(text)\n"); // TODO? store actual text and print it here
|
||||
break;
|
||||
case PARTS_ANIMATION:
|
||||
printf("(animation %d+%d)\n", state->anim.cg_no, state->anim.nr_frames);
|
||||
break;
|
||||
case PARTS_NUMERAL:
|
||||
printf("(numeral %d)\n", state->num.cg_no);
|
||||
break;
|
||||
case PARTS_HGAUGE:
|
||||
printf("(hgauge)\n"); // TODO? store rate and cg and print them here
|
||||
break;
|
||||
case PARTS_VGAUGE:
|
||||
printf("(vgauge)\n");
|
||||
break;
|
||||
case PARTS_CONSTRUCTION_PROCESS: {
|
||||
printf("(construction process:");
|
||||
struct parts_cp_op *op;
|
||||
TAILQ_FOREACH(op, &state->cproc.ops, entry) {
|
||||
switch (op->type) {
|
||||
case PARTS_CP_CREATE:
|
||||
printf(" create");
|
||||
break;
|
||||
case PARTS_CP_CREATE_PIXEL_ONLY:
|
||||
printf(" create-pixel-only");
|
||||
break;
|
||||
case PARTS_CP_CG:
|
||||
printf(" cg");
|
||||
break;
|
||||
case PARTS_CP_FILL_ALPHA_COLOR:
|
||||
printf(" fill-alpha-color");
|
||||
break;
|
||||
case PARTS_CP_DRAW_TEXT:
|
||||
printf(" draw-text");
|
||||
break;
|
||||
case PARTS_CP_COPY_TEXT:
|
||||
printf(" copy-text");
|
||||
break;
|
||||
}
|
||||
switch (state->type) {
|
||||
case PARTS_UNINITIALIZED:
|
||||
printf("(uninitialized)\n");
|
||||
break;
|
||||
case PARTS_CG:
|
||||
printf("(cg %d)\n", state->cg.no);
|
||||
break;
|
||||
case PARTS_TEXT:
|
||||
printf("(text)\n"); // TODO? store actual text and print it here
|
||||
break;
|
||||
case PARTS_ANIMATION:
|
||||
printf("(animation %d+%d)\n", state->anim.cg_no, state->anim.nr_frames);
|
||||
break;
|
||||
case PARTS_NUMERAL:
|
||||
printf("(numeral %d)\n", state->num.cg_no);
|
||||
break;
|
||||
case PARTS_HGAUGE:
|
||||
printf("(hgauge)\n"); // TODO? store rate and cg and print them here
|
||||
break;
|
||||
case PARTS_VGAUGE:
|
||||
printf("(vgauge)\n");
|
||||
break;
|
||||
case PARTS_CONSTRUCTION_PROCESS: {
|
||||
printf("(construction process:");
|
||||
struct parts_cp_op *op;
|
||||
TAILQ_FOREACH(op, &state->cproc.ops, entry) {
|
||||
switch (op->type) {
|
||||
case PARTS_CP_CREATE:
|
||||
printf(" create");
|
||||
break;
|
||||
case PARTS_CP_CREATE_PIXEL_ONLY:
|
||||
printf(" create-pixel-only");
|
||||
break;
|
||||
case PARTS_CP_CG:
|
||||
printf(" cg");
|
||||
break;
|
||||
case PARTS_CP_FILL_ALPHA_COLOR:
|
||||
printf(" fill-alpha-color");
|
||||
break;
|
||||
case PARTS_CP_DRAW_TEXT:
|
||||
printf(" draw-text");
|
||||
break;
|
||||
case PARTS_CP_COPY_TEXT:
|
||||
printf(" copy-text");
|
||||
break;
|
||||
}
|
||||
printf(")\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
printf(")\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
struct parts *child;
|
||||
|
||||
+2
-1
@@ -31,7 +31,6 @@ static struct hash_table *parts_table = NULL;
|
||||
|
||||
static void parts_init(struct parts *parts)
|
||||
{
|
||||
memset(parts, 0, sizeof(struct parts));
|
||||
parts->delegate_index = -1;
|
||||
parts->on_cursor_sound = -1;
|
||||
parts->on_click_sound = -1;
|
||||
@@ -111,6 +110,8 @@ static void parts_list_remove(struct parts_list *list, struct parts *parts)
|
||||
static void parts_state_free(struct parts_state *state)
|
||||
{
|
||||
switch (state->type) {
|
||||
case PARTS_UNINITIALIZED:
|
||||
break;
|
||||
case PARTS_CG:
|
||||
gfx_delete_texture(&state->common.texture);
|
||||
break;
|
||||
|
||||
@@ -77,6 +77,7 @@ struct parts_text_line {
|
||||
};
|
||||
|
||||
enum parts_type {
|
||||
PARTS_UNINITIALIZED,
|
||||
PARTS_CG,
|
||||
PARTS_TEXT,
|
||||
PARTS_ANIMATION,
|
||||
|
||||
@@ -109,6 +109,8 @@ static void _parts_render(struct parts *parts, struct parts_render_params *paren
|
||||
struct parts_state *state = &parts->states[parts->state];
|
||||
if (state->common.texture.handle) {
|
||||
switch (state->type) {
|
||||
case PARTS_UNINITIALIZED:
|
||||
break;
|
||||
case PARTS_CG:
|
||||
case PARTS_ANIMATION:
|
||||
case PARTS_NUMERAL:
|
||||
|
||||
Reference in New Issue
Block a user