void text_draw_sprite ( u8 *str, u16 x, u16 y, u16 ms ) { #define TILE _base + _positions[chr] * _width * _height #define ATTR TILE_ATTR_FULL ( _palette, 1, 0, 0, TILE ) u8 chr, i = 0; const u16 size = _genres->size >> 8; const u8 width = _genres->width; while ( (chr = *str++) ) { chr -= ' '; chr = ( chr >= 96 ) ? 0 : chr; if ( ! _positions[chr] ) { _positions[chr] = _counter++; VDP_loadTileData ( _genres->sprites[chr], TILE, size, TRUE ); VDP_waitVSync(); } VDP_setSprite ( i, x+i*width, y, size, ATTR, i+1 ); VDP_updateSprites(); waitMs ( ms ); ++i; } }
void InGameMenuLoop() { VDP_resetSprites(); u16 tileAttr = TILE_ATTR_FULL(PAL0,0,0,0,goplanesLoadedTileInfo.startIndex); VDP_setSprite(0, TILE_TO_PIXEL(12), TILE_TO_PIXEL(9) + TILE_TO_PIXEL(menuItem), SPRITE_SIZE(3,3), tileAttr, 0); MyVDP_waitVSync(); VDP_updateSprites(); if (joyButtonPressedState.b) { CloseInGameMenu(); return; } if (joyButtonPressedState.start || joyButtonPressedState.a) { switch (menuItem) { case MENU_ITEM_RETURN: { CloseInGameMenu(); return; } break; case MENU_ITEM_ENABLE_DEBUG: { if (playerObject->aiState != AI_STATE_DEBUG) { Player_StartDebugMovement(); } else { Player_EndDebugMovement(); } DrawText(); } break; case MENU_ITEM_INVINCIBILITY: debugSettings.invincibility = !debugSettings.invincibility; DrawText(); break; case MENU_ITEM_VSYNC: debugSettings.waitforvsync = !debugSettings.waitforvsync; DrawText(); break; case MENU_ITEM_FPSCOUNTER: debugSettings.showFPSCounter = !debugSettings.showFPSCounter; DrawText(); break; } } }
void ObjectManager_DrawObjects() { spriteDrawIndex = 0; DrawHUD(); DrawObjectCollection(&pickupCollection); DrawObjectCollection(&effectCollection); playerObject->drawFunction(playerObject); DrawObjectCollection(&enemyCollection); DrawObjectCollection(&playerProjectileCollection); DrawObjectCollection(&enemyProjectileCollection); DrawObjectCollection(&breakablesCollection); // sets the last used sprite's link to 0, telling the hardware to // only draw the sprites we've set. VDP_setSprite(spriteDrawIndex, 0, 0, 0, 0, 0); }