/* Handlers... WHY?! * GOTTA FIND A MODULAR SOLUTION!! */ void joyAtkHandler ( u16 joy, u16 joyChanged, u16 state ) { int xc = fix32ToInt(p1.x); int yc = fix32ToInt(p1.y); // Player 1 if (joy == JOY_1) { if ( (state & BUTTON_A) || (state & BUTTON_B) || (state & BUTTON_C) ) // if (state & BUTTON_B ) { if (p1_dir.y != 0) { VDP_drawText( "XXX", xc - 1, fix32ToInt(p1.y - p1_dir.y) ); VDP_drawText( "XXX", xc - 1, fix32ToInt(p1.y - 2*p1_dir.y) ); } else if (p1_dir.x != 0) { VDP_drawText( "XX", fix32ToInt(p1.x + 2*p1_dir.x), yc - 1 ); VDP_drawText( "XX", fix32ToInt(p1.x + 2*p1_dir.x), yc ); VDP_drawText( "XX", fix32ToInt(p1.x + 2*p1_dir.x), yc + 1 ); } } VDP_setTileMapXY( VDP_PLAN_A, 0, xc, yc ); VDP_setTileMapXY( VDP_PLAN_A, 0, fix32ToInt(p1.x + p1_dir.x), fix32ToInt(p1.y - p1_dir.y) ); } }
void fix32ToStr(fix32 value, char *str, s16 numdec) { u32 len; fix32 v; u32 frac; u8 strFrac[8]; len = 0; if (value < 0) { v = -value; str[len++] = '-'; } else v = value; len += uintToStr_(fix32ToInt(v), &str[len], 1, 16); str[len++] = '.'; // get fractional part frac = fix32Frac(v) * 1000; frac /= 1 << FIX32_FRAC_BITS; // get fractional string uintToStr(frac, strFrac, 3); if (numdec >= 3) strcpy(&str[len], strFrac); else strncpy(&str[len], strFrac, numdec); }
void fix32ToStr(fix32 value, char *str, s16 numdec) { u32 len; fix32 v; len = 0; if (value < 0) { v = -value; str[len++] = '-'; } else v = value; len += uintToStr_(fix32ToInt(v), &str[len], 1, 16); str[len++] = '.'; uintToStr_((fix32Frac(v) * 1000) / (1 << FIX32_FRAC_BITS), &str[len], 1, numdec); }