Exemplo n.º 1
0
void CUIActorMenu::ResetMode()
{
	ClearAllLists				();
	m_pMouseCapturer			= NULL;
	m_UIPropertiesBox->Hide		();
	SetCurrentItem				(NULL);
}
CUIActorMenu::~CUIActorMenu()
{
	xr_delete			(m_message_box_yes_no);
	xr_delete			(m_message_box_ok);
	xr_delete			(m_UIPropertiesBox);
	xr_delete			(m_hint_wnd);
	xr_delete			(m_ItemInfo);
#ifdef EXT_BELT
	m_belt_list_over.clear_and_free();
#endif
	ClearAllLists		();
}
Exemplo n.º 3
0
int main( int argc, char* args[] )
{

    int err,z;

    for (z=0;z<100;z++)
    {
        hiname[z]=(char*)malloc(5);
        //hiscores[z]=10000-z*100;
        hiscores[z]=0;
        hinew[z]=0;
        if (z&1) strcpy(hiname[z],"ED!"); else  strcpy(hiname[z],"FUZ");
    }


    #ifdef _WIN32
    _setmode( _fileno( stdin ), _O_BINARY );
    _setmode( _fileno( stdout ), _O_BINARY );
    #endif

    // Initialize all SDL subsystems
    err=SDL_Init( SDL_INIT_JOYSTICK | SDL_INIT_VIDEO | SDL_INIT_TIMER | SDL_INIT_AUDIO );

    if (err ==-1)
    {
        printf(  "SDL Init error: %d\n",  err  );
        return 1;
    }
    screen = SDL_SetVideoMode(SCREEN_WIDTH, SCREEN_HEIGHT, 16, SDL_HWSURFACE | SDL_HWPALETTE | SDL_DOUBLEBUF);
    SDL_ShowCursor(false);

    if (Mix_OpenAudio(44100, AUDIO_S16, MIX_DEFAULT_CHANNELS, 1024))
    {
        printf ("SDL Could not open sound hardware\n");
        soundpresent=0;
    }

    srand((int)SDL_GetTicks());

	// Do PC specific stuff
    #ifdef _WIN32
	// Set the window caption
	SDL_WM_SetCaption( "FuZeD", NULL );
    #endif // PLATFORM_PC

    SDL_Surface* intro_screen_scroll;
    SDL_Surface* intro_header;
    SDL_Surface* intro_footer;
    SDL_Surface* intro_icons;
    SDL_Surface* mouse_pointer;


    loadgfx(&intro_screen_scroll,(char*)"graphics/page_background_1280_scroll_wrap.png");
    loadgfx(&intro_header,(char*)"graphics/page_header.png");
    loadgfx(&intro_footer,(char*)"graphics/page_footer.png");

    loadgfx(&intro_icons,(char*)"graphics/intro_icons.png");
    loadgfx(&mouse_pointer,(char*)"graphics/mouse_pointer.png");

    loadgfx(&font,(char*)"graphics/16x16_font.png");
    loadgfx(&smallfont,(char*)"graphics/8x8_font.png");

    loadgfx(&spritemasks,(char*)"graphics/collmask.png");
    loadgfx(&coin_collide,(char*)"graphics/coin_collide.png");

    music = NULL;

    if (soundpresent)
    {

        mine_arm_snd=Mix_LoadWAV("audio/blips4.wav");
        explosion_snd=Mix_LoadWAV("audio/explosion_x.wav");
        collect_snd=Mix_LoadWAV("audio/sound005.wav");
        jump_snd=Mix_LoadWAV("audio/sound008.wav");
        bomb_land_snd=Mix_LoadWAV("audio/hammer.wav");
    }

    playercontrols[0].left=SDLK_LEFT;
    playercontrols[0].right=SDLK_RIGHT;
    playercontrols[0].cycle=SDLK_PAGEUP;
    playercontrols[0].jump=SDLK_PAGEDOWN;
    playercontrols[0].fire=SDLK_END;

    playercontrols[1].left=SDLK_z;
    playercontrols[1].right=SDLK_x;
    playercontrols[1].cycle=SDLK_c;
    playercontrols[1].jump=SDLK_t;
    playercontrols[1].fire=SDLK_f;

    playercontrols[0].joy=10; //keyboard
    playercontrols[1].joy=10;


InitCollisions(15);
level.Init();
wheelie.init();
grog.init();
slinky.init();
bomb.init();
explosion.init();
smoke.init();
mine.init();
dynamite.init();
player.init();
gem.init();
coin.init();
pickup.init();
pickedup16.init();
pickedup32.init();
hiscore.init();
LoadScores();
LoadSettings();
quitgame=0;
//level=new Tlevel;
while (quitgame==0)
{
    int keydata=0;
    int introscroll=0;
    int s1clip=640;
    long ticks=SDL_GetTicks();

    int exit_intro=0;
    int intro_option=0;
    startlevel=0;

    if (soundpresent)
    {
        if (music) Mix_FreeMusic(music);
        music = Mix_LoadMUS("audio/FuZED.title.Main.xm");
        if (!music) printf("SDL could not load music: %s\n" , SDL_GetError());
        if (music) Mix_PlayMusic(music, -1);
    }
    while (exit_intro<2)
    {
        introscroll+=4;
        if (introscroll>=1280) introscroll=0;
        s1clip=640-(introscroll-640);
        if (s1clip>640) s1clip=640;

        drawSprite(intro_screen_scroll, screen, introscroll, 0, 0, 96, s1clip, 352);
        if (s1clip<640) drawSprite(intro_screen_scroll, screen, 0, 0, s1clip, 96, 640-s1clip, 352);

        //drawSprite(intro_screen_scroll, screen, 0, 0, introscroll, 96, 1280, 352);
        //drawSprite(intro_screen_scroll, screen, 0, 0, 1280+introscroll, 96, 1280, 352);

        drawSprite(intro_header, screen, 0, 0, 0, 0, 640, 96);
        drawSprite(intro_footer, screen, 0, 0, 0, 448, 640, 32);

        drawSprite(intro_icons, screen, 0, 0, 32, 160, 96, 96);
        drawSprite(intro_icons, screen, 96, 0, 192, 160, 96, 96);
        drawSprite(intro_icons, screen, 192, 0, 352, 160, 96, 96);
        drawSprite(intro_icons, screen, 288, 0, 512, 160, 96, 96);

        drawSprite(intro_icons, screen, 288+96, 0, 32, 300, 96, 96);
        drawSprite(intro_icons, screen, 288+192, 0, 192, 300, 96, 96);
        drawSprite(intro_icons, screen, 288+288+96, 0, 352, 300, 96, 96);
        drawSprite(intro_icons, screen, 288+288, 0, 512, 300, 96, 96);


        drawSprite(mouse_pointer, screen, 0, 0, mx,my, 19, 31);

        if (images_collide(mx, my, 8, 8, mouse_pointer, 0, 0, 24, 31, 0xFF00FF, 32, 160, 96, 96, intro_icons, 0, 0, 96, 96, 0xFF00FF))
        {
            Text((char*)"SINGLE PLAYER",216,462);
            if (keydata & MY_BUTT_B)
            {
                exit_intro=2;
                intro_option=0;
            }
        }
        if (images_collide(mx, my, 8, 8, mouse_pointer, 0, 0, 24, 31, 0xFF00FF, 192, 160, 96, 96, intro_icons, 0, 0, 96, 96, 0xFF00FF))
        {
            Text((char*)"TWO PLAYER TEAM",200,462);
               if (keydata & MY_BUTT_B)
            {
                exit_intro=2;
                intro_option=1;
            }
        }
        //if (images_collide(mx, my, 8, 8, mouse_pointer, 0, 0, 24, 31, 0xFF00FF, 32, 160, 96, 96, intro_icons, 0, 0, 96, 96, 0xFF00FF)) Text((char*)"SINGLE PLAYER",216,462);
        //if (images_collide(mx, my, 8, 8, mouse_pointer, 0, 0, 24, 31, 0xFF00FF, 32, 160, 96, 96, intro_icons, 0, 0, 96, 96, 0xFF00FF)) Text((char*)"SINGLE PLAYER",216,462);
        if (images_collide(mx, my, 8, 8, mouse_pointer, 0, 0, 24, 31, 0xFF00FF, 512, 300, 96, 96, intro_icons, 0, 0, 96, 96, 0xFF00FF))
        {
            Text((char*)"EXIT GAME",248,462);
               if (keydata & MY_BUTT_B)
            {
                exit_intro=2;
                intro_option=7;
            }
        }


        SDL_Flip(screen);


        keydata=get_key(0);

//        printf("MS %d Millisecs\n",SDL_GetTicks()-ticks);
//        ticks=SDL_GetTicks();
    }

    if (soundpresent) Mix_HaltMusic();

    if ((intro_option>=0) && (intro_option<=3))
    {
		level.Create(startlevel);							//Create level (level id)
		player.spawn(1,level.GetPx(0),level.GetPy(0),2,0,0,3,1);		//Create Player 1
		if (intro_option>0) player.spawn(2,level.GetPx(1),level.GetPy(1),2,0,0,3,0);		//Create Player 2
		if (soundpresent)
		{
		    if (music) Mix_FreeMusic(music);
			if (startlevel<5) music = Mix_LoadMUS("audio/FuZED.lev.Checkers.xm");
			if ((startlevel>=5) && (startlevel<10)) Mix_LoadMUS("audio/FuZED.lev.Ancient.xm");

		}
		level.AddEnemies();

		level.Fadein();
		keydata=0;
        if ((soundpresent) && (music)) Mix_PlayMusic(music, -1);	//Start music playing
		while ((player.CountList()>0) && (QDOWN==0))
		{
		    while ((((player.CountList()>0) && (level.door_appear<4)) || hiscore.CountList()>0) && (QDOWN==0))
		    {
                level.Play();

                SDL_Flip(screen);
                keydata=get_key(0);
/*                if (keydata & MY_BUTT_A)
                {
                    SDL_SaveBMP(screen,"screenshot.bmp");
                    printf("screenshot saved\n");
                }*/
		    }
		    if ((player.CountList()>0) && (QDOWN==0))
		    {
				ClearAllLists();
				level.ScrollToNext();
				level.AddEnemies();
                player.InitialPosition();

		    }
		}

		level.Fadeout();
		ClearAllLists();
		player.ClearList();

    }


    if (intro_option==7) quitgame=1;
}
    Mix_FreeMusic(music);
    SaveScores();
    SaveSettings();
    SDL_Quit();

    return 0;

}