Changes

Jump to: navigation, search

User talk:TPAINROXX/WiiMoveIt

4,130 bytes removed, 00:29, 12 July 2009
no edit summary
-->
==Source Code (for corrections and help)=='''Code as of 67-2811-09.
Currently Recoded. The only problem is the program doesn't work: either a blank screen or code dumpI get when trying to use exit_menu(), but nothing major.'''I know there's some weird stuff going on, but I just wanted to update for current progress. Also some tests/debugging are included, but won't be in demo/release.
 
''' ''main.cpp'' '''
<source lang=cpp>
/***********************************************/
/* WiiMoveIt - By Brandon Whitmire */
/* Powered Using GRRLIB 4.0.0 */
/***********************************************/
/*=========================================================WARNING: Working file; be carful with editing#include "games.hpp"
WiiMoveIt - By: Brandon Whitmire#ifndef __VER__#define __VER__ "1.0 DEMO"#endif
Thanks for GRRLIBint main(){ WiiLightOn();  GRRLIB_Init(); WPAD_Init();  GRRLIB_texImg tex_font1 = GRRLIB_LoadTexture(font1); GRRLIB_InitTileSet(&tex_font1, 32, 32, 32); GRRLIB_Printf(300, 30, tex_font1, LIME, 2, and to NoNameNo and Crayon for GRRLIB help"LOADING..."); GRRLIB_Render(); WPAD_SetDataFormat(WPAD_CHAN_0, WPAD_FMT_BTNS_ACC_IR); WPAD_SetVRes(0, 640, 480); time(&start_time); while(1) //=========================================================This displays the version and other version data. { clrscr(); GRRLIB_Printf(15, 30, tex_font1, AQUA, 1, "VERSION v%s", __VER__); GRRLIB Download and Help Forum GRRLIB_Printf(15, 180, tex_font1, AQUA, 1, "DATE: http%s", __DATE__); GRRLIB_Printf(15, 330, tex_font1, AQUA, 1, "TIME:%s", __TIME__); GRRLIB_Printf(380, 10, tex_font1, LIME, 2, "WIIMOVEIT"); GRRLIB_Render(); time(&cur_time); if ( (cur_time - start_time) > 5 ) {break;} WPAD_ScanPads(); if (WPAD_ButtonsHeld(0) && WPAD_BUTTON_PLUS) {break;} }  free(tex_font1.data); intro(); exit_menu(); GRRLIB_InitTileSet(&tex_font1, 32, 32, 32); time(&start_time); while(1) { GRRLIB_FillScreen(BLACK); GRRLIB_Printf(15, 30, tex_font1, AQUA, 1, "YOU CANCELLED!"); GRRLIB_Render(); time(&cur_time); if ( (cur_time - start_time) > 5 ) {break;} WPAD_ScanPads(); if (WPAD_ButtonsHeld(0) && WPAD_BUTTON_PLUS) {break;} } free(tex_font1.data); GRRLIB_Exit(); WiiLightOff(); return 0;}</source> ''' ''games.hpp'' '''<source lang=cpp>//grrlib---------------------------------------------------------// games.santocpp - Includes basic game engine/thing.fr//---------------------------------------------------------/*********************************************************///=======================================================---------------------------------------------------------// START FILE INCLUSIONGRRLIB - So Important it has its own spot....
//---------------------------------------------------------
// Important Files & Headers
///////////////////////////////////////////////////////////
//To switch between version because SVN doesn't always work.
//Or I don't know how to use it (mostly this is the problem).
// #include "GRRLIB/GRRLIB/GRRLIB.h" //Version packed with GRRLIB 4.0.0 //---------------------------------------------------------// Regular Headers and Such//---------------------------------------------------------
#include "GRRLIB/SVN/GRRLIB.h" //SVN Version; rev101.
///////////////////////////////////////////////////////////
#include <cstdlib>
#include <time.h> //For time comparison.
#include <iostream> //May not be used; for basic output (originally).
using namespace std;
 
//=========================================================
// Start All File Inclusion
//=========================================================
 
#include "fonts/font1.h"
#include "fonts/font2.h"
#include "fonts/font3.h"
//---------------------------------------------------------
// Start All File InclusionCredits/Intro
//---------------------------------------------------------
#include "credits/introBKGD.h"#include "fontscredits/fontGRRLIB.h"#include "credits/Wilber.h"#include "credits/BKW2.h"#include "credits/Devkitlogo.h"
//---------------------------------------------------------
// For Regular Menu (aka "Lights Off")
//---------------------------------------------------------
#include "gfxMenu/pointer1Pointer.h"
#include "gfxMenu/menu_pix/menuWiiMoveIt.h"
#include "gfxMenu/menu_pix/button1.h"#include "gfx/menu_pix/button2.h"#include "gfx/menu_pix/button3Exit.h"
#include "Menu/Buttons/---------------------------------------------------------BButton.h"#include "Menu/Buttons/ For Inverted Menu (aka WButton.h"Lights On")//---------------------------------------------------------
#include "gfxMenu/pointer1_iButtons/Start.h"#include "Menu/Buttons/Options.h"#include "Menu/Buttons/Exit.h"
#include "gfxMenu/menu_pixButtons/menu_i/menu_iButton.h"
#include "gfxMenu/menu_pix/menu_i/button1_i.h"#include "gfx/menu_pix/menu_i/button2_iHighlight.h"#include "gfx/menu_pix/menu_iMenu/button3_iHighlight2.h"
//---------------------------------------------------------
//---------------------------------------------------------
#include "gfx/menu_pix/options/options.h"*** * * * *TO BE CODED LATER * * *#include "gfx/menu_pix/options***/button.h"
//---------------------------------------------------------
//Game 5 - The Square
//Game 6 ---------------------------------------------------------Fix TV  //=========================================================//
// END OF FILE INCLUSION
//---------------------------------------------------------/////////////////////////////////////////////////////////////---------------------------------------------------------=========================================================
// Important Variables and Functions
//--------------------------------------------------------- void GRRLIB_FreeTexture(struct GRRLIB_texImg *tex) //Declared here because of errors relating to not being declared.{ //This is still part of GRRLIB, though. free(tex->data); free(tex); tex = NULL;}========================================================
//Easy color codes from Crayon...
#define WHITE 0xFFFFFFFF
Mtx GXmodelView2D; //Needed for GRRLIB void clrscr() //"Clears Screen"...
{GRRLIB_FillScreen(BLACK);}
 
Mtx GXmodelView2D; //Needed for GRRLIB
//Wiimote 1
ir_t ir1; //IR Movement
orient_t or1; //Orientation Movement
time_t start_time, cur_time; //Time delays/comparisons; may not be used.
bool normal_menu = true; //If true then the it will be "Lights Off" for the menuWii Light - Thanks to Crayon... again...
//---------------------------------------------------------// Rumble for IR Pointer Going Over a Button//---------------------------------------------------------static vu32 *_wiilight_reg = (u32*)0xCD0000C0;
bool do_rumble void WiiLightOff(){ *_wiilight_reg &= true~0x20; //This is so the Wiimote only rumbles one time if it's on a button.}
void rumbleWiiLightOn(u32 remote_channel)
{
if (do_rumble *_wiilight_reg |== true) { WPAD_Rumble(remote_channel, 1); usleep(25000); WPAD_Rumble (remote_channel, 0); do_rumble = false0x20; }
}
//---------------------------------------------------------
// Game and Score Functions and VariablesSimple IR Comparison Function; Faster to Code
//---------------------------------------------------------
#define GAME_NUM 1 bool IRposition (int IRx1, int IRy1, int IRx2, int IRy2, ir_t IR_T)//Number of [WORKING] games* Min X Min Y Max X Max Y IR Struct (i.e.ir1)#define WIN Return true if a point lies within specified coodinates based off the IR.*//A constant to help with "Win/Lose Game" instead of "True/False Game"{return ((IRx1 <= IR_T.x) && (IRx2 >= IR_T.x) && (IRy1 <= IR_T.y) && (IRy2 >= IR_T.#define LOSE false // "ditto"y));}
int game_score = 0; //Actual game score.---------------------------------------------------------int game_life = 5; //Make lives variable depending on difficulty/options. Exit Function - GUI Versionbool game; //This either increases your score or decreases your lives based on game performance.bool game_easy = true;//The easy/hard difficulty variable.---------------------------------------------------------
void scoreexit_menu(){ /* GRRLIB_texImg tex_Pointer = GRRLIB_LoadTexture(Pointer);THIS IS GOOD IF YOU ARE NOT FAMILIAR WITH printf AND RELATED. GRRLIB_texImg tex_Exit = GRRLIB_LoadTexture(Exit);NORMALLY, I USE cout AND cin INSTEAD OF printf AND scanf. GRRLIB_texImg tex_Highlight = GRRLIB_LoadTexture(Highlight); GRRLIB_texImg tex_Highlight2 = GRRLIB_LoadTexture(Highlight2);
EXCERPTED FROM DEV-CPP HELP ON INPUT/OUTPUT IN C. The % Format Specifiers: The % specifiers that you can use in ANSI C are:   Usual variable type Display %c char single character%d while(%i1) int signed integer%e (%E) float or double exponential format {%f float or double signed decimal%g (%G) float or double use %f or %e as required%o int unsigned octal value %p pointer address stored in pointer%s array of char sequence of characters%u int unsigned decimal%x (%X) int unsigned hex value*/ clrscr GRRLIB_FillScreen(SILVER);
GRRLIB_texImg *tex_font = GRRLIB_LoadTexture GRRLIB_DrawImg(font); GRRLIB_InitTileSet(tex_font0, 0, tex_Exit, 0, 161, 161, 32SILVER);
GRRLIB_Printf WPAD_IR(100WPAD_CHAN_0, 100&ir1); WPAD_Orientation(WPAD_CHAN_0, &or1); GRRLIB_DrawImg(ir1.x, ir1.y, tex_fonttex_Pointer, BLACKor1.roll, 2ir1.z, "SCORE: %d"ir1.z, game_score SILVER);
GRRLIB_Printf WPAD_ScanPads(100, 175, tex_font, BLACK, 2, "LIVES: %d", game_life); GRRLIB_Printf(100, 250, tex_font, BLACK, 2, (game_easy == true ? "DIFFICULTY: EASY" : "DIFFICULTY: HARD") ); GRRLIB_Render(); usleep(3000000); GRRLIB_FreeTexture(tex_font);
clrscr if ();} //,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,// Main Game Program//''''''''''''''''''''''''''''''''''''''''''''''''''''''''' void GAMEWPAD_ButtonsHeld(0){ clrscr(&& WPAD_BUTTON_HOME); //For All Games | Win & Lose | GRRLIB_texImg *tex_Game_Win = GRRLIB_LoadTexture(Game_Win); GRRLIB_texImg *tex_Game_Lose = GRRLIB_LoadTexture(Game_Lose); GRRLIB_texImg *tex_Game_Over = GRRLIB_LoadTexture(Game_Over);Cancel bool game_played[GAME_NUM] {break;}
for (int game_count = 1; game_count <= GAME_NUM; game_count++) //This is to keep track of which games have been played {game_played[game_count - 1] = false;} //in a session.  while(1) { srand(else if (unsigned)timeIRposition (0476, 61, 625, 210, ir1)); //Generates a random number then starts a random game based off that number. int random = ( (rand() % GAME_NUM)+1); for (int game_count = 1; game_count <= GAME_NUM; game_count++)Cancel
{
GRRLIB_DrawImg(476, 61, tex_Highlight, 0, 1, 1, SILVER); if (game_played[game_count - 1] == trueWPAD_ButtonsHeld(0) && WPAD_BUTTON_A) {continuebreak;} //If game has been played then it will go back to the beginning of the loop.
}
//......................................................... else if (random == 1IRposition (16, 61, 165, 210, ir1) )//To Wii Menu.
{
GRRLIB_texImg *tex_thing = GRRLIB_LoadTexture(thing); GRRLIB_texImg *tex_game1_start = GRRLIB_LoadTexture(game1_start); GRRLIB_texImg *tex_game1_play = GRRLIB_LoadTexture(game1_play); while(1) { GRRLIB_DrawImg(016, 061, tex_game1_starttex_Highlight, 0, 1, 1, BLACKSILVER); GRRLIB_DrawImg(ir1.x - (32), ir1.y - (26), tex_thing, or1.roll, ir1.z, ir1.z, BLACK); GRRLIB_Render(); clrscr();/* if () //These are conditionals for declaring whether or not the game is won. {game = WIN;} else if WPAD_ButtonsHeld() {game = LOSE;}*/ } game_played[0] = true; //Game has been played. GRRLIB_FreeTexture (tex_thing); GRRLIB_FreeTexture (tex_game1_start&& WPAD_BUTTON_A); GRRLIB_FreeTexture {SYS_ResetSystem(tex_game1_playSYS_RETURNTOMENU, 0, 0);}
}
//......................................................... /* else if (random == 2) {} else if (random == 3IRposition (221, 61, 420, 260, ir1) {} else if (random == 4) {}* // if (game == WIN)To Loader.
{
game_score++; GRRLIB_DrawImg( 0221, 061, tex_Game_Wintex_Highlight2, 0, 1, 1, BLACKSILVER); //Box is slightly bigger. if ( WPAD_ButtonsHeld(game_score % 100) == 0 && WPAD_BUTTON_A) //You get an extra life for every 10 pts attained. {game_life++exit(0);}
}
else if (game == LOSEIRposition (96, 271, 245, 420, ir1) ) //Turn off Wii.
{
game_life--; GRRLIB_DrawImg( 096, 0271, tex_Game_Losetex_Highlight, 0, 1, 1, BLACKSILVER); if (WPAD_ButtonsHeld(0) && WPAD_BUTTON_A) {SYS_ResetSystem(SYS_POWEROFF, 0, 0);}
}
GRRLIB_Renderelse if (IRposition (386, 271, 535, 420, ir1); ) //Reset Wii. usleep(4000000);{ score GRRLIB_DrawImg(386, 271, tex_Highlight, 0, 1, 1, SILVER); //Displays score.
if (game_life <= WPAD_ButtonsHeld(0) //To be conbined with score later (break won't work if in score(&& WPAD_BUTTON_A);). { GRRLIB_DrawImgSYS_ResetSystem( 0SYS_RESTART, 0, tex_Game_Over, 0, 1, 1, BLACK); GRRLIB_Render(); usleep(4000000); break;}
}
GRRLIB_Render();
}
free(tex_Exit.data);
free(tex_Pointer.data);
free(tex_Highlight.data);
}
//---------------------------------------------------------
// Options FunctionIntro
//---------------------------------------------------------
void OPTIONSEND() //Test.
{
/* LocationsFirst Button:  X 540-152 = 388Y 280-76 = 204 Second Button: X 540-152 = 388Y 380-76 = 304*/ GRRLIB_texImg *tex_options tex_font2 = GRRLIB_LoadTexture(optionsfont2); GRRLIB_texImg *tex_button = GRRLIB_LoadTexture GRRLIB_InitTileSet(button&tex_font2, 16, 16, 32); GRRLIB_texImg *tex_pointer1 = GRRLIB_LoadTexture(pointer1);  while(1) { WPAD_ScanPadstime(&start_time);
if while(WPAD_ButtonsDown(0) && WPAD_BUTTON_PLUS1)
{
GRRLIB_FreeTextureclrscr(tex_options); GRRLIB_Printf(25, 430, tex_font2, BLUE, 1.75, "END? - TO BE CONTINUED..."); GRRLIB_FreeTextureGRRLIB_Render(tex_button);
scoretime(&cur_time);
if ((cur_time - start_time) >= 3) {break;}
}
clrscr();
GRRLIB_DrawImgfree( 0, 0, tex_options, 0, 1, 1, BLACKtex_font2.data); }  if void intro(normal_menu == true) //Because the normal menu is "Lights Off" {GRRLIB_DrawImg( 388, 204, tex_button, 0, 1, 1, BLACK);} if (game_easy =GRRLIB_texImg tex_BKGD = false) //But easy is on and not easy is off. {GRRLIB_DrawImgGRRLIB_LoadTexture( 388, 304, tex_button, 0, 1, 1, BLACKBKGD);} WPAD_IRGRRLIB_texImg tex_GRRLIB = GRRLIB_LoadTexture(WPAD_CHAN_0, &ir1GRRLIB); //For Wiimote 1 IR. WPAD_OrientationGRRLIB_texImg tex_Wilber = GRRLIB_LoadTexture(WPAD_CHAN_0, &or1Wilber); //For Wiimote 1 orientation. GRRLIB_DrawImgGRRLIB_texImg tex_BKW2 = GRRLIB_LoadTexture(ir1.x - 48, ir1.y - 45, tex_pointer1, or1.roll, ir1.z, ir1.z, BLACKBKW2); GRRLIB_RenderGRRLIB_texImg tex_Devkitlogo = GRRLIB_LoadTexture(Devkitlogo);
if ( ((ir1.x >= 388) & (ir1.x <= 540)) & ((ir1.y >= 204) & (ir1.y <= 280)) )struct _intro_data
{
rumble(0)int x, y;//Positions WPAD_ScanPads()int deg; //Degrees
if (WPAD_BUTTON_A & WPAD_ButtonsDown(0)) { if (normal_menu == true) float sx, sy; //Lights off.Scaling {normal_menu = false } dINTRO, dGRRLIB, dGIMP, dBKW2, dDEVKIT;} else if (normal_menu == false) //Lights ond prefix added because of errors relating to texture loading. {normal_menu = true;} }
}dINTRO.sx = 0, dINTRO.sy = 0;
else if while( ((ir1.x >= 388) & (ir1.x <= 540)) & ((ir1.y >= 304) & (ir1.y <= 380)) 1)
{
rumbleGRRLIB_FillScreen(SILVER); GRRLIB_DrawImg(0, 0, tex_BKGD, 0, dINTRO.sx, dINTRO.sy, SILVER);
GRRLIB_Render();
if (dINTRO.sx >= 1) //Just to make sure...
{break;}
WPAD_ScanPads();
if (WPAD_BUTTON_A & WPAD_ButtonsDownWPAD_ButtonsHeld(0)&& WPAD_BUTTON_PLUS) //For debugging; in case it never breaks. { if (game_easy == true) { game_easy = false; game_life = 3break; } else if (game_easy == false) { game_easy dINTRO.sx += true.01; game_life dINTRO.sy += 5.01; } }
}
elsedGRRLIB.x = (0 - tex_GRRLIB.w); dGRRLIB.y = (0 - tex_GRRLIB.h); {do_rumble dGRRLIB.deg = true0;}
} dBKW2.x = (0 - tex_BKW2.w); dBKW2.y = ((tex_BKW2.h / 2) + 240); //240 is 1/2 of 480; the screen's height. This should center the image.
} //---------------------------------------------------------// Intro/Credits Function//--------------------------------------------------------- void play_intro(){ clrscr()dBKW2.sx = 0, dBKW2.sy = 0;
GRRLIB_texImg *tex_intro bool BKW_switch = GRRLIB_LoadTexture(intro)true;
GRRLIB_DrawImg( dGIMP.x = 0, ; dGIMP.y = 0, tex_intro, 0, 1, 1, BLACK);
GRRLIB_Render()unsigned int counter = 1;
usleep(400000);  GRRLIB_FreeTexture(tex_intro);  clrscr();}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////-------------------------------------------------------//////// Main Program ////////-------------------------------------------------------////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////int main() { GRRLIB_texImg *tex_pointer1 dDEVKIT.deg = GRRLIB_LoadTexture(pointer1)0;
GRRLIB_texImg *tex_menu = GRRLIB_LoadTexturetime(menu&start_time);
GRRLIB_texImg *tex_button1 = GRRLIB_LoadTexturewhile(button11); GRRLIB_texImg *tex_button2 = GRRLIB_LoadTexture(button2);{ GRRLIB_texImg *tex_button3 = GRRLIB_LoadTexture GRRLIB_FillScreen(button3SILVER);
GRRLIB_texImg *tex_pointer1_i = GRRLIB_LoadTexture GRRLIB_DrawImg(pointer1_i); GRRLIB_texImg *tex_menu_i = GRRLIB_LoadTexture(menu_i); GRRLIB_texImg *tex_button1_i = GRRLIB_LoadTexture(button1_i); GRRLIB_texImg *tex_button2_i = GRRLIB_LoadTexture(button2_i); GRRLIB_texImg *tex_button3_i = GRRLIB_LoadTexture(button3_i); GRRLIB_Init(); //Starts GRRLIB WPAD_Init(); //Start WPAD-related Stuff WPAD_SetDataFormat(WPAD_CHAN_00, 0, tex_BKGD, 0, 1, 1, WPAD_FMT_BTNS_ACC_IRSILVER);
WPAD_SetVRes GRRLIB_DrawImg(WPAD_CHAN_0120, 640350, 480tex_Devkitlogo, (dDEVKIT.deg += 1), 1, 1, SILVER);
play_intro GRRLIB_DrawImg(dGRRLIB.x, dGRRLIB.y, tex_GRRLIB, dGRRLIB.deg, 1, 1, SILVER); //Plays intro/credits while(1) { //***********MENU START******************************************************************************  GRRLIB_DrawImg( 0, 0, (normal_menu == true ? tex_menu : tex_menu_i)tex_BKW2, 0, 1dBKW2.sx, 1dBKW2.sy, BLACKSILVER); WPAD_ScanPads if (BKW_switch) { dBKW2.sx += .05; dBKW2.sy += .05;//***********START*********************************************************************************** if ( ( (ir1dBKW2.x sx >= 20.75) & {BKW_switch = false;} } else { dBKW2.sx -= .05; dBKW2.sy -= .05; if (ir1dBKW2.x sx <= 2120) & {BKW_switch = true;} } GRRLIB_DrawImg( (ir1dGIMP.x, dGIMP.y >= 364, tex_Wilber, 0, 1, 1, SILVER) & ; if (ir1.y <counter == 620) ) ) 1) { rumble dGIMP.x += 5; if ( (dGIMP.x % 30) == 0) {counter++;} }
GRRLIB_DrawImg(20, 364, else if (normal_menu counter == true ? tex_button1 : tex_button1_i), 0, 1, 1, BLACK2) { dGIMP.y += 5; if(WPAD_ButtonsHeld(dGIMP.y % 30) == 0) & WPAD_BUTTON_A) {GAME()counter--;} } //************OPTIONS******************************************************************************** else if GRRLIB_Render( ( (ir1.x >= 225) & (ir1.x <= 417) ) & ( (ir1.y >= 364) & (ir1.y <= 620) ) ) { rumble(0);
GRRLIB_DrawImg(225, 364, (normal_menu = dGRRLIB.x += true ? tex_button2 : tex_button2_i), 0, 1, 1, BLACK); if(WPAD_ButtonsHeld(0) & WPAD_BUTTON_A) {OPTIONS()3;} }  //************EXIT*********************************************************************************** else if ( ( (ir1.x >= 428) & (ir1.x <= 620) ) & ( (ir1.y >= 364) & (ir1dGRRLIB.y <+= 620) ) ) { rumble(0)2;
GRRLIB_DrawImg(428, 364, (normal_menu == true ? tex_button3 : tex_button3_i), 0, 1, 1, BLACK); if(WPAD_ButtonsHeld(0) & WPAD_BUTTON_A) {goto exit;} } //************FOR RUMBLE***************************************************************************** else {do_rumble = true;}//***********END LOOP }****************************************************************************** WPAD_IR(WPAD_CHAN_0, &ir1); //For Wiimote 1 IRdGRRLIB. WPAD_Orientation(WPAD_CHAN_0, &or1)deg++; //For Wiimote 1 orientation.
GRRLIB_DrawImgtime(ir1.x - 48, ir1.y - 45, (normal_menu == true ? tex_pointer1 : tex_pointer1_i), or1.roll, ir1.z, ir1.z, BLACK&cur_time);
GRRLIB_Renderif ((cur_time - start_time) >= 10 ) {break;}
clrscrWPAD_ScanPads();} //***********END************************************************************************************* exit: //This is just in case I add anything after the loop, then it will exit correctly. GRRLIB_FreeTexture(tex_pointer1); //Not necessarily needed due to GRRLIB_Exit();, but here for future revision. GRRLIB_FreeTexture(tex_menu); GRRLIB_FreeTexture (tex_button1); GRRLIB_FreeTexture (tex_button2); GRRLIB_FreeTexture (tex_button3);
GRRLIB_FreeTexture if (tex_pointer1_i); GRRLIB_FreeTexture WPAD_ButtonsHeld(tex_menu_i0); GRRLIB_FreeTexture (tex_button1_i&& WPAD_BUTTON_PLUS); GRRLIB_FreeTexture (tex_button2_i) {break;} GRRLIB_FreeTexture (tex_button3_i);}
GRRLIB_Exitfree(tex_BKGD.data); free(tex_GRRLIB.data); free(tex_Wilber.data); free(tex_BKW2.data); free(tex_Devkitlogo.data); // Be a good boy, clear the memory allocated by GRRLIB
return 0 END();//A test. Should be removed if it's here.
}
</source>
//---------------------------------------------------------// End of Program//-------------------------------------------------------<!--I like saving stuff.
</source>
:Hi, did you see that post: http://grrlib.santo.fr/forum/viewtopic.php?pid=795#p795 from 2009-06-30 17:14:17? -[[User:Crayon|Crayon]] 03:05, 7 July 2009 (UTC)
::Oh no, I didn't see that. I'll start implementing it tomorrow (as I've been on vacation a few days...), but thanks Crayon once again! --[[User:TPAINROXX|<font face="VINETA BT"><font color="black">-TPAINROXX</font>/<font color="green">BKW</font></font>]] 03:19, 7 July 2009 (UTC)
-->
 
New source code. [[User:TPAINROXX|<font face="VINETA BT"><font color="black">-TPAINROXX</font>/<font color="green">BKW</font></font>]] 22:29, 11 July 2009 (UTC)
257
edits

Navigation menu