git repos / blockattack-game

blame: source/code/menudef.cpp

normal view · raw

26ddb424 sago007 2011-06-09 20:06 1
#include "global.hpp"
26ddb424 sago007 2011-06-09 20:06 2
#include <iostream>
26ddb424 sago007 2011-06-09 20:06 3
#include <stdlib.h>
26ddb424 sago007 2011-06-09 20:06 4
#include "menu/MenuItem.hpp"
26ddb424 sago007 2011-06-09 20:06 5
#include "MenuSystem.h"
26ddb424 sago007 2011-06-09 20:06 6
26ddb424 sago007 2011-06-09 20:06 7
using namespace std;
26ddb424 sago007 2011-06-09 20:06 8
26ddb424 sago007 2011-06-09 20:06 9
//Menu
26ddb424 sago007 2011-06-09 20:06 10
void PrintHi()
26ddb424 sago007 2011-06-09 20:06 11
{
26ddb424 sago007 2011-06-09 20:06 12
    cout << "Hi" <<endl;
26ddb424 sago007 2011-06-09 20:06 13
}
26ddb424 sago007 2011-06-09 20:06 14
26ddb424 sago007 2011-06-09 20:06 15
bool OpenDialogbox(int x, int y, char *name);
26ddb424 sago007 2011-06-09 20:06 16
void OpenScoresDisplay();
26ddb424 sago007 2011-06-09 20:06 17
26ddb424 sago007 2011-06-09 20:06 18
void InitMenues()
26ddb424 sago007 2011-06-09 20:06 19
{
26ddb424 sago007 2011-06-09 20:06 20
    ButtonGfx::setSurfaces(menuMarked,menuUnmarked);
26ddb424 sago007 2011-06-09 20:06 21
    ButtonGfx::thefont = nf_scoreboard_font;
26ddb424 sago007 2011-06-09 20:06 22
}
26ddb424 sago007 2011-06-09 20:06 23
26ddb424 sago007 2011-06-09 20:06 24
void runGame(int gametype);
26ddb424 sago007 2011-06-09 20:06 25
26ddb424 sago007 2011-06-09 20:06 26
void runSinglePlayerEndless(Button* b) {
26ddb424 sago007 2011-06-09 20:06 27
    runGame(0);
26ddb424 sago007 2011-06-09 20:06 28
}
26ddb424 sago007 2011-06-09 20:06 29
26ddb424 sago007 2011-06-09 20:06 30
void runSinglePlayerTimeTrial(Button* b) {
26ddb424 sago007 2011-06-09 20:06 31
    runGame(1);
26ddb424 sago007 2011-06-09 20:06 32
}
26ddb424 sago007 2011-06-09 20:06 33
26ddb424 sago007 2011-06-09 20:06 34
void runSinglePlayerPuzzle(Button* b) {
26ddb424 sago007 2011-06-09 20:06 35
    runGame(3);
26ddb424 sago007 2011-06-09 20:06 36
}
26ddb424 sago007 2011-06-09 20:06 37
26ddb424 sago007 2011-06-09 20:06 38
void runSinglePlayerVs(Button* b) {
26ddb424 sago007 2011-06-09 20:06 39
    runGame(4);
26ddb424 sago007 2011-06-09 20:06 40
}
26ddb424 sago007 2011-06-09 20:06 41
26ddb424 sago007 2011-06-09 20:06 42
void buttonActionMusic(Button* b) {
26ddb424 sago007 2011-06-09 20:06 43
    MusicEnabled = !MusicEnabled;
26ddb424 sago007 2011-06-09 20:06 44
    b->setLabel(MusicEnabled? "Music: On" : "Music: Off");
26ddb424 sago007 2011-06-09 20:06 45
}
26ddb424 sago007 2011-06-09 20:06 46
26ddb424 sago007 2011-06-09 20:06 47
void buttonActionSound(Button* b) {
26ddb424 sago007 2011-06-09 20:06 48
    SoundEnabled = !SoundEnabled;
26ddb424 sago007 2011-06-09 20:06 49
    b->setLabel(SoundEnabled? "Music: On" : "Music: Off");
26ddb424 sago007 2011-06-09 20:06 50
}
26ddb424 sago007 2011-06-09 20:06 51
26ddb424 sago007 2011-06-09 20:06 52
void buttonActionFullscreen(Button* b) {
26ddb424 sago007 2011-06-09 20:06 53
    bFullscreen = !bFullscreen;
26ddb424 sago007 2011-06-09 20:06 54
    b->setLabel(bFullscreen? "Fullscreen: On" : "Fullscreen: Off");
26ddb424 sago007 2011-06-09 20:06 55
    ResetFullscreen();
26ddb424 sago007 2011-06-09 20:06 56
}
26ddb424 sago007 2011-06-09 20:06 57
26ddb424 sago007 2011-06-09 20:06 58
void buttonActionPlayer1Name(Button *b) {
26ddb424 sago007 2011-06-09 20:06 59
   if (OpenDialogbox(200,100,player1name))
26ddb424 sago007 2011-06-09 20:06 60
        return; //must save if true
26ddb424 sago007 2011-06-09 20:06 61
}
26ddb424 sago007 2011-06-09 20:06 62
26ddb424 sago007 2011-06-09 20:06 63
void buttonActionPlayer2Name(Button *b) {
26ddb424 sago007 2011-06-09 20:06 64
   if (OpenDialogbox(200,100,player2name))
26ddb424 sago007 2011-06-09 20:06 65
        return; //must save if true
26ddb424 sago007 2011-06-09 20:06 66
}
26ddb424 sago007 2011-06-09 20:06 67
26ddb424 sago007 2011-06-09 20:06 68
void buttonActionHighscores(Button *b) {
26ddb424 sago007 2011-06-09 20:06 69
    OpenScoresDisplay();
26ddb424 sago007 2011-06-09 20:06 70
}
26ddb424 sago007 2011-06-09 20:06 71
26ddb424 sago007 2011-06-09 20:06 72
class ChangeKeysMenu {
26ddb424 sago007 2011-06-09 20:06 73
public:
26ddb424 sago007 2011-06-09 20:06 74
    static long player;
26ddb424 sago007 2011-06-09 20:06 75
    static void CreateKeysMenu(long playernumber);
26ddb424 sago007 2011-06-09 20:06 76
    static void ChangeLeftKey(Button *b);
26ddb424 sago007 2011-06-09 20:06 77
    static void ChangeRightKey(Button *b);
26ddb424 sago007 2011-06-09 20:06 78
    static void ChangeUpKey(Button *b);
26ddb424 sago007 2011-06-09 20:06 79
    static void ChangeDownKey(Button *b);
26ddb424 sago007 2011-06-09 20:06 80
    static void ChangePushKey(Button *b);
26ddb424 sago007 2011-06-09 20:06 81
    static void ChangeSwitchKey(Button *b);
26ddb424 sago007 2011-06-09 20:06 82
    static void ChangeJoypadStatus(Button *b);
26ddb424 sago007 2011-06-09 20:06 83
    static void ChangeMouseStatus(Button *b);
26ddb424 sago007 2011-06-09 20:06 84
};
26ddb424 sago007 2011-06-09 20:06 85
26ddb424 sago007 2011-06-09 20:06 86
long ChangeKeysMenu::player;
26ddb424 sago007 2011-06-09 20:06 87
26ddb424 sago007 2011-06-09 20:06 88
static void ChangeKeysMenu(long playernumber) {
26ddb424 sago007 2011-06-09 20:06 89
    ChangeKeysMenu::player = playernumber;
26ddb424 sago007 2011-06-09 20:06 90
    Button bLeft, bRight, bUp, bDown, bPush, bSwitch, bJoypad, bMouse;
26ddb424 sago007 2011-06-09 20:06 91
    bLeft.setLabel("Left : ");
26ddb424 sago007 2011-06-09 20:06 92
    bRight.setLabel("Right : ");
26ddb424 sago007 2011-06-09 20:06 93
    bUp.setLabel("Up : ");
26ddb424 sago007 2011-06-09 20:06 94
    bDown.setLabel("Down : ");
26ddb424 sago007 2011-06-09 20:06 95
}
26ddb424 sago007 2011-06-09 20:06 96
26ddb424 sago007 2011-06-09 20:06 97
void ConfigureMenu(Button *b) {
26ddb424 sago007 2011-06-09 20:06 98
    Menu cm(&screen,false);
26ddb424 sago007 2011-06-09 20:06 99
    Button bMusic,bSound,buttonFullscreen,bPlayer1Name,bPlayer2Name;
26ddb424 sago007 2011-06-09 20:06 100
    bMusic.setLabel(MusicEnabled? "Music: On" : "Music: Off");
26ddb424 sago007 2011-06-09 20:06 101
    bMusic.setAction(buttonActionMusic);
26ddb424 sago007 2011-06-09 20:06 102
    bSound.setLabel(SoundEnabled? "Music: On" : "Music: Off");
26ddb424 sago007 2011-06-09 20:06 103
    bSound.setAction(buttonActionSound);
26ddb424 sago007 2011-06-09 20:06 104
    buttonFullscreen.setLabel(bFullscreen? "Fullscreen: On" : "Fullscreen: Off");
26ddb424 sago007 2011-06-09 20:06 105
    buttonFullscreen.setAction(buttonActionFullscreen);
26ddb424 sago007 2011-06-09 20:06 106
    bPlayer1Name.setAction(buttonActionPlayer1Name);
26ddb424 sago007 2011-06-09 20:06 107
    bPlayer1Name.setLabel("Change player 1's name");
26ddb424 sago007 2011-06-09 20:06 108
    bPlayer2Name.setAction(buttonActionPlayer2Name);
26ddb424 sago007 2011-06-09 20:06 109
    bPlayer2Name.setLabel("Change player 2's name");
26ddb424 sago007 2011-06-09 20:06 110
    cm.addButton(bMusic);
26ddb424 sago007 2011-06-09 20:06 111
    cm.addButton(bSound);
26ddb424 sago007 2011-06-09 20:06 112
    cm.addButton(buttonFullscreen);
26ddb424 sago007 2011-06-09 20:06 113
    cm.addButton(bPlayer1Name);
26ddb424 sago007 2011-06-09 20:06 114
    cm.addButton(bPlayer2Name);
26ddb424 sago007 2011-06-09 20:06 115
    cm.run();
26ddb424 sago007 2011-06-09 20:06 116
}
26ddb424 sago007 2011-06-09 20:06 117
26ddb424 sago007 2011-06-09 20:06 118
void MainMenu()
26ddb424 sago007 2011-06-09 20:06 119
{
26ddb424 sago007 2011-06-09 20:06 120
    InitMenues();
26ddb424 sago007 2011-06-09 20:06 121
    Menu m(&screen,true);
26ddb424 sago007 2011-06-09 20:06 122
    Button bHi,bTimetrial1, bPuzzle, bVs1, bConfigure,bHighscore;
26ddb424 sago007 2011-06-09 20:06 123
    bHi.setLabel("Single player - endless");
26ddb424 sago007 2011-06-09 20:06 124
    bHi.setAction(runSinglePlayerEndless);
26ddb424 sago007 2011-06-09 20:06 125
    bTimetrial1.setLabel("Single player - time trial");
26ddb424 sago007 2011-06-09 20:06 126
    bTimetrial1.setAction(runSinglePlayerTimeTrial);
26ddb424 sago007 2011-06-09 20:06 127
    bPuzzle.setLabel("Single player - puzzle mode");
26ddb424 sago007 2011-06-09 20:06 128
    bPuzzle.setAction(runSinglePlayerPuzzle);
26ddb424 sago007 2011-06-09 20:06 129
    bVs1.setLabel("Single player - vs");
26ddb424 sago007 2011-06-09 20:06 130
    bVs1.setAction(runSinglePlayerVs);
26ddb424 sago007 2011-06-09 20:06 131
    bConfigure.setLabel("Configure");
26ddb424 sago007 2011-06-09 20:06 132
    bConfigure.setAction(ConfigureMenu);
26ddb424 sago007 2011-06-09 20:06 133
    bHighscore.setLabel("Highscores");
26ddb424 sago007 2011-06-09 20:06 134
    bHighscore.setAction(buttonActionHighscores);
26ddb424 sago007 2011-06-09 20:06 135
    m.addButton(bHi);
26ddb424 sago007 2011-06-09 20:06 136
    m.addButton(bTimetrial1);
26ddb424 sago007 2011-06-09 20:06 137
    m.addButton(bPuzzle);
26ddb424 sago007 2011-06-09 20:06 138
    m.addButton(bVs1);
26ddb424 sago007 2011-06-09 20:06 139
    m.addButton(bConfigure);
26ddb424 sago007 2011-06-09 20:06 140
    m.addButton(bHighscore);
26ddb424 sago007 2011-06-09 20:06 141
    m.run();
26ddb424 sago007 2011-06-09 20:06 142
}