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
fc8e3d6a sago007 2011-06-25 16:31 88
void ChangeKeysMenu::ChangeDownKey(Button* b) {
fc8e3d6a sago007 2011-06-25 16:31 89
    
fc8e3d6a sago007 2011-06-25 16:31 90
}
fc8e3d6a sago007 2011-06-25 16:31 91
fc8e3d6a sago007 2011-06-25 16:31 92
void ChangeKeysMenu::ChangeLeftKey(Button* b) {
fc8e3d6a sago007 2011-06-25 16:31 93
    
fc8e3d6a sago007 2011-06-25 16:31 94
}
fc8e3d6a sago007 2011-06-25 16:31 95
fc8e3d6a sago007 2011-06-25 16:31 96
void ChangeKeysMenu::ChangePushKey(Button* b) {
fc8e3d6a sago007 2011-06-25 16:31 97
    
fc8e3d6a sago007 2011-06-25 16:31 98
}
fc8e3d6a sago007 2011-06-25 16:31 99
fc8e3d6a sago007 2011-06-25 16:31 100
void ChangeKeysMenu::ChangeRightKey(Button* b) {
fc8e3d6a sago007 2011-06-25 16:31 101
    
fc8e3d6a sago007 2011-06-25 16:31 102
}
fc8e3d6a sago007 2011-06-25 16:31 103
fc8e3d6a sago007 2011-06-25 16:31 104
void ChangeKeysMenu::ChangeSwitchKey(Button* b) {
fc8e3d6a sago007 2011-06-25 16:31 105
    
fc8e3d6a sago007 2011-06-25 16:31 106
}
fc8e3d6a sago007 2011-06-25 16:31 107
fc8e3d6a sago007 2011-06-25 16:31 108
void ChangeKeysMenu::ChangeUpKey(Button* b) {
fc8e3d6a sago007 2011-06-25 16:31 109
    
fc8e3d6a sago007 2011-06-25 16:31 110
}
fc8e3d6a sago007 2011-06-25 16:31 111
26ddb424 sago007 2011-06-09 20:06 112
static void ChangeKeysMenu(long playernumber) {
26ddb424 sago007 2011-06-09 20:06 113
    ChangeKeysMenu::player = playernumber;
fc8e3d6a sago007 2011-06-25 16:31 114
    Menu km(&screen,false);
26ddb424 sago007 2011-06-09 20:06 115
    Button bLeft, bRight, bUp, bDown, bPush, bSwitch, bJoypad, bMouse;
26ddb424 sago007 2011-06-09 20:06 116
    bLeft.setLabel("Left : ");
fc8e3d6a sago007 2011-06-25 16:31 117
    bLeft.setAction(ChangeKeysMenu::ChangeLeftKey);
26ddb424 sago007 2011-06-09 20:06 118
    bRight.setLabel("Right : ");
fc8e3d6a sago007 2011-06-25 16:31 119
    bRight.setAction(ChangeKeysMenu::ChangeRightKey);
26ddb424 sago007 2011-06-09 20:06 120
    bUp.setLabel("Up : ");
fc8e3d6a sago007 2011-06-25 16:31 121
    bUp.setAction(ChangeKeysMenu::ChangeUpKey);
26ddb424 sago007 2011-06-09 20:06 122
    bDown.setLabel("Down : ");
fc8e3d6a sago007 2011-06-25 16:31 123
    bDown.setAction(ChangeKeysMenu::ChangeDownKey);
fc8e3d6a sago007 2011-06-25 16:31 124
    km.addButton(&bLeft);
fc8e3d6a sago007 2011-06-25 16:31 125
    km.addButton(&bRight);
fc8e3d6a sago007 2011-06-25 16:31 126
    km.addButton(&bUp);
fc8e3d6a sago007 2011-06-25 16:31 127
    km.addButton(&bDown);
fc8e3d6a sago007 2011-06-25 16:31 128
    km.run();
26ddb424 sago007 2011-06-09 20:06 129
}
26ddb424 sago007 2011-06-09 20:06 130
fc8e3d6a sago007 2011-06-25 16:31 131
26ddb424 sago007 2011-06-09 20:06 132
void ConfigureMenu(Button *b) {
26ddb424 sago007 2011-06-09 20:06 133
    Menu cm(&screen,false);
26ddb424 sago007 2011-06-09 20:06 134
    Button bMusic,bSound,buttonFullscreen,bPlayer1Name,bPlayer2Name;
26ddb424 sago007 2011-06-09 20:06 135
    bMusic.setLabel(MusicEnabled? "Music: On" : "Music: Off");
26ddb424 sago007 2011-06-09 20:06 136
    bMusic.setAction(buttonActionMusic);
26ddb424 sago007 2011-06-09 20:06 137
    bSound.setLabel(SoundEnabled? "Music: On" : "Music: Off");
26ddb424 sago007 2011-06-09 20:06 138
    bSound.setAction(buttonActionSound);
26ddb424 sago007 2011-06-09 20:06 139
    buttonFullscreen.setLabel(bFullscreen? "Fullscreen: On" : "Fullscreen: Off");
26ddb424 sago007 2011-06-09 20:06 140
    buttonFullscreen.setAction(buttonActionFullscreen);
26ddb424 sago007 2011-06-09 20:06 141
    bPlayer1Name.setAction(buttonActionPlayer1Name);
26ddb424 sago007 2011-06-09 20:06 142
    bPlayer1Name.setLabel("Change player 1's name");
26ddb424 sago007 2011-06-09 20:06 143
    bPlayer2Name.setAction(buttonActionPlayer2Name);
26ddb424 sago007 2011-06-09 20:06 144
    bPlayer2Name.setLabel("Change player 2's name");
fc8e3d6a sago007 2011-06-25 16:31 145
    cm.addButton(&bMusic);
fc8e3d6a sago007 2011-06-25 16:31 146
    cm.addButton(&bSound);
fc8e3d6a sago007 2011-06-25 16:31 147
    cm.addButton(&buttonFullscreen);
fc8e3d6a sago007 2011-06-25 16:31 148
    cm.addButton(&bPlayer1Name);
fc8e3d6a sago007 2011-06-25 16:31 149
    cm.addButton(&bPlayer2Name);
26ddb424 sago007 2011-06-09 20:06 150
    cm.run();
26ddb424 sago007 2011-06-09 20:06 151
}
26ddb424 sago007 2011-06-09 20:06 152
26ddb424 sago007 2011-06-09 20:06 153
void MainMenu()
26ddb424 sago007 2011-06-09 20:06 154
{
26ddb424 sago007 2011-06-09 20:06 155
    InitMenues();
26ddb424 sago007 2011-06-09 20:06 156
    Menu m(&screen,true);
26ddb424 sago007 2011-06-09 20:06 157
    Button bHi,bTimetrial1, bPuzzle, bVs1, bConfigure,bHighscore;
26ddb424 sago007 2011-06-09 20:06 158
    bHi.setLabel("Single player - endless");
26ddb424 sago007 2011-06-09 20:06 159
    bHi.setAction(runSinglePlayerEndless);
26ddb424 sago007 2011-06-09 20:06 160
    bTimetrial1.setLabel("Single player - time trial");
26ddb424 sago007 2011-06-09 20:06 161
    bTimetrial1.setAction(runSinglePlayerTimeTrial);
26ddb424 sago007 2011-06-09 20:06 162
    bPuzzle.setLabel("Single player - puzzle mode");
26ddb424 sago007 2011-06-09 20:06 163
    bPuzzle.setAction(runSinglePlayerPuzzle);
26ddb424 sago007 2011-06-09 20:06 164
    bVs1.setLabel("Single player - vs");
26ddb424 sago007 2011-06-09 20:06 165
    bVs1.setAction(runSinglePlayerVs);
26ddb424 sago007 2011-06-09 20:06 166
    bConfigure.setLabel("Configure");
26ddb424 sago007 2011-06-09 20:06 167
    bConfigure.setAction(ConfigureMenu);
26ddb424 sago007 2011-06-09 20:06 168
    bHighscore.setLabel("Highscores");
26ddb424 sago007 2011-06-09 20:06 169
    bHighscore.setAction(buttonActionHighscores);
fc8e3d6a sago007 2011-06-25 16:31 170
    m.addButton(&bHi);
fc8e3d6a sago007 2011-06-25 16:31 171
    m.addButton(&bTimetrial1);
fc8e3d6a sago007 2011-06-25 16:31 172
    m.addButton(&bPuzzle);
fc8e3d6a sago007 2011-06-25 16:31 173
    m.addButton(&bVs1);
fc8e3d6a sago007 2011-06-25 16:31 174
    m.addButton(&bConfigure);
fc8e3d6a sago007 2011-06-25 16:31 175
    m.addButton(&bHighscore);
26ddb424 sago007 2011-06-09 20:06 176
    m.run();
26ddb424 sago007 2011-06-09 20:06 177
}