#include static int loadFont2(const char * filename, s_font &font) { return llgfx_LoadFont(filename,&font); } static int loadFont(const char * filename, s_font &font) { memset(&font,0,sizeof(s_font)); llgfx_id sysfont = llgfx_LoadGfx(filename,LLGFX_COLORKEY); SYS_ASSERT(sysfont); font.gfxid = sysfont; font.width = 10; font.height = 10; #define sys_font10 font.rects #include "sys_font10.h" return OK; } static void drawstring(s_font &font, char *text){ SYS_ASSERT_PTR(text); int startx = llgfx_text_xpos; int c = 0; s_rect bounding_rect; ll2d::SetRectEmpty(bounding_rect); ll2d::OffsetRect(bounding_rect,llgfx_text_xpos,llgfx_text_ypos); while( 0 != ( c = *text++) ) { if( c == '\n' || startx > llgfx_displaywidth ) { llgfx_text_ypos += font.height; if( llgfx_text_xpos > bounding_rect.x1 ) bounding_rect.x1 = llgfx_text_xpos; llgfx_text_xpos = startx; continue; } llgfx_sBLITFX blitfx; blitfx.scale_x=2; blitfx.scale_y=2; blitfx.fixalpha = 0.7f; blitfx.color=GOLD; s_rect *srcrect = &font.crects[ c ]; if( srcrect->x2 != 0 ){ llgfx_BLIT( 0, font.gfxid, llgfx_text_xpos, llgfx_text_ypos, srcrect, BLIT_FXMUL, &blitfx ); llgfx_text_xpos += ll2d::WIDTH(srcrect); } else { llgfx_text_xpos += font.width; } } llgfx_text_ypos += font.height; llgfx_text_xpos = startx; } int os_main( int argc, char **argv, char **envp ) { llgfx_SetDisplayMode( 320, 240, 16, 0 ); llgfx_id background = llgfx_LoadGfx("background2.png",0); llgfx_id logo = llgfx_LoadGfx("one03.png",LLGFX_COLORKEY); s_font sysfont; loadFont("sys_font.png",sysfont); s_font font2; loadFont2("myriad_pro_black.png",font2); llgfx_id redpng = llgfx_LoadGfx("red.png"); float blend = 1.0f; while(osmain_endgame==false) { float difftime = llirq_GetDeltaTime(); blend = ll3d::Sin(ll3d::Mod(llirq_uptime,PI)); llgfx_sBLITFX blitfx; blitfx.fixalpha = blend; blitfx.color = GREEN; llgfx_TILE_BLIT(0,background,0,0,0,0,&blitfx); blitfx.fixalpha = 1.0f-blend; llgfx_BLIT(0,font2.gfxid,0,0,0,BLIT_FXDIFF,&blitfx); blitfx.fixalpha = 1; llgfx_BLIT(0,logo,0,0,0,BLIT_FXINVMUL,&blitfx); blitfx.fixalpha = 0.5; blitfx.color = RED; llgfx_BLIT(0,logo,0,120,0,BLIT_FXCOLOR,&blitfx); llgfx_FlipScreen(1); llirq_Sleep(10); llinput_Update(); if( llinput_Keys[LLINPUT_KEY_B] ) blend = 1; if( llinput_Keys[LLINPUT_KEY_A] ) osmain_endgame = true; } return 0; }