void muiDrawObject(muiObject *obj) { switch (obj->type) { case MUI_BUTTON: drawbut(obj); break; case MUI_RADIOBUTTON: drawradiobutton(obj); break; case MUI_TINYRADIOBUTTON: drawtinyradio(obj); break; case MUI_LABEL: drawlabel(obj); break; case MUI_BOLDLABEL: drawboldlabel(obj); break; case MUI_TEXTBOX: drawtb(obj); break; case MUI_VSLIDER: drawvs(obj); break; case MUI_HSLIDER: drawhs(obj); break; case MUI_TEXTLIST: drawtl(obj); break; case MUI_PULLDOWN: drawpulldown(obj); break; } }
/* * Map introduction * * ASM: 1948 * * return: SCREEN_RUNNING, SCREEN_DONE, SCREEN_EXIT */ U8 screen_introMap(void) { //char tutu[50]; //sprintf(tutu,"imap ctrl=%d seq=%d, %d %d ",control_status,seq, 0 , SCREEN_TIMEOUT); //slPrint(tutu,slLocate(3,14)); switch (seq) { case 0: // slPrint("befor sysvid_clear",slLocate(3,15)); sysvid_clear(); // slPrint("after sysvid_clear",slLocate(3,15)); #ifdef GFXPC draw_tilesBank = 1; draw_filter = 0xAAAA; #endif #ifdef GFXST draw_tilesBank = 0; #endif draw_tllst = screen_imaptext[game_map]; draw_setfb(32, 0); draw_tilesSubList(); draw_setfb(32, 96); #ifdef GFXPC draw_filter = 0x5555; #endif draw_tilesList(); game_rects = NULL; #ifdef GFXPC draw_filter = 0xFFFF; #endif // slPrint("befor init ",slLocate(3,15)); init(); // slPrint("after init ",slLocate(3,15)); nextstep(); // slPrint("after nextstep ",slLocate(3,15)); drawcenter(); // slPrint("after drawcenter ",slLocate(3,15)); drawtb(); // slPrint("after drawtb ",slLocate(3,15)); drawlr(); // slPrint("after drawlr ",slLocate(3,15)); drawsprite(); // slPrint("after drawsprite ",slLocate(3,15)); control_last = 0; game_rects = &draw_SCREENRECT; #ifdef ENABLE_SOUND game_setmusic(map_maps[game_map].tune, 1); #endif // slPrint("after game_setmusic ",slLocate(3,15)); seq = 1; break; case 1: /* top and bottom borders */ drawtb(); game_rects = &anim_rect; seq = 2; break; case 2: /* background and sprite */ anim(); drawcenter(); drawsprite(); game_rects = &anim_rect; seq = 3; break; case 3: /* all borders */ drawtb(); drawlr(); game_rects = &anim_rect; seq = 1; break; case 4: /* wait for key release */ if (!(control_status & CONTROL_FIRE)) seq = 5; else { //control_status =0; sys_sleep(50); /* .5s */ } break; } if (control_status & CONTROL_FIRE) { /* end as soon as key pressed */ seq = 4; } if (control_status & CONTROL_EXIT) /* check for exit request */ return SCREEN_EXIT; if (seq == 5) { /* end as soon as key pressed */ sysvid_clear(); seq = 0; return SCREEN_DONE; } else return SCREEN_RUNNING; }