Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
openjazz
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
PocketInsanity
openjazz
Commits
58b2311d
Commit
58b2311d
authored
Jun 24, 2010
by
alistert
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Separated menu into three subclasses.
parent
fcd9bfa7
Changes
14
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
566 additions
and
525 deletions
+566
-525
Makefile
Makefile
+1
-1
Makefile.arm
Makefile.arm
+1
-1
Makefile.debian
Makefile.debian
+1
-1
bonus.cpp
src/bonus/bonus.cpp
+3
-2
clientgame.cpp
src/game/clientgame.cpp
+1
-1
level.cpp
src/level/level.cpp
+4
-3
levelload.cpp
src/level/levelload.cpp
+1
-1
main.cpp
src/main.cpp
+6
-6
gamemenu.cpp
src/menu/gamemenu.cpp
+131
-27
mainmenu.cpp
src/menu/mainmenu.cpp
+121
-44
menu.cpp
src/menu/menu.cpp
+217
-158
menu.h
src/menu/menu.h
+73
-36
menuutil.cpp
src/menu/menuutil.cpp
+0
-238
setupmenu.cpp
src/menu/setupmenu.cpp
+6
-6
No files found.
Makefile
View file @
58b2311d
...
@@ -11,7 +11,7 @@ objects = src/bonus/bonus.o \
...
@@ -11,7 +11,7 @@ objects = src/bonus/bonus.o \
src/level/bullet.o src/level/demolevel.o src/level/level.o
\
src/level/bullet.o src/level/demolevel.o src/level/level.o
\
src/level/levelframe.o src/level/levelload.o
\
src/level/levelframe.o src/level/levelload.o
\
src/menu/gamemenu.o src/menu/mainmenu.o src/menu/menu.o
\
src/menu/gamemenu.o src/menu/mainmenu.o src/menu/menu.o
\
src/menu/
menuutil.o src/menu/
setupmenu.o
\
src/menu/setupmenu.o
\
src/planet/planet.o
\
src/planet/planet.o
\
src/player/bird.o src/player/player.o src/player/playerframe.o
\
src/player/bird.o src/player/player.o src/player/playerframe.o
\
src/scene/scene.o src/scene/sceneload.o
\
src/scene/scene.o src/scene/sceneload.o
\
...
...
Makefile.arm
View file @
58b2311d
...
@@ -35,7 +35,7 @@ OBJS = src/bonus/bonus.o \
...
@@ -35,7 +35,7 @@ OBJS = src/bonus/bonus.o \
src/level/bullet.o src/level/demolevel.o src/level/level.o
\
src/level/bullet.o src/level/demolevel.o src/level/level.o
\
src/level/levelframe.o src/level/levelload.o
\
src/level/levelframe.o src/level/levelload.o
\
src/menu/gamemenu.o src/menu/mainmenu.o src/menu/menu.o
\
src/menu/gamemenu.o src/menu/mainmenu.o src/menu/menu.o
\
src/menu/
menuutil.o src/menu/
setupmenu.o
\
src/menu/setupmenu.o
\
src/planet/planet.o
\
src/planet/planet.o
\
src/player/bird.o src/player/player.o src/player/playerframe.o
\
src/player/bird.o src/player/player.o src/player/playerframe.o
\
src/scene/scene.o src/scene/sceneload.o
\
src/scene/scene.o src/scene/sceneload.o
\
...
...
Makefile.debian
View file @
58b2311d
...
@@ -11,7 +11,7 @@ objects = src/bonus/bonus.o \
...
@@ -11,7 +11,7 @@ objects = src/bonus/bonus.o \
src/level/bullet.o src/level/demolevel.o src/level/level.o
\
src/level/bullet.o src/level/demolevel.o src/level/level.o
\
src/level/levelframe.o src/level/levelload.o
\
src/level/levelframe.o src/level/levelload.o
\
src/menu/gamemenu.o src/menu/mainmenu.o src/menu/menu.o
\
src/menu/gamemenu.o src/menu/mainmenu.o src/menu/menu.o
\
src/menu/
menuutil.o src/menu/
setupmenu.o
\
src/menu/setupmenu.o
\
src/planet/planet.o
\
src/planet/planet.o
\
src/player/bird.o src/player/player.o src/player/playerframe.o
\
src/player/bird.o src/player/player.o src/player/playerframe.o
\
src/scene/scene.o src/scene/sceneload.o
\
src/scene/scene.o src/scene/sceneload.o
\
...
...
src/bonus/bonus.cpp
View file @
58b2311d
...
@@ -645,6 +645,7 @@ void Bonus::draw () {
...
@@ -645,6 +645,7 @@ void Bonus::draw () {
int
Bonus
::
play
()
{
int
Bonus
::
play
()
{
SetupMenu
setupMenu
;
const
char
*
options
[
3
]
=
{
"continue game"
,
"setup options"
,
"quit game"
};
const
char
*
options
[
3
]
=
{
"continue game"
,
"setup options"
,
"quit game"
};
bool
pmenu
,
pmessage
;
bool
pmenu
,
pmessage
;
int
stats
,
option
;
int
stats
,
option
;
...
@@ -706,7 +707,7 @@ int Bonus::play () {
...
@@ -706,7 +707,7 @@ int Bonus::play () {
if
(
!
gameMode
)
{
if
(
!
gameMode
)
{
if
(
menu
->
setup
()
==
E_QUIT
)
return
E_QUIT
;
if
(
setupMenu
.
setup
()
==
E_QUIT
)
return
E_QUIT
;
// Restore level palette
// Restore level palette
video
.
setPalette
(
palette
);
video
.
setPalette
(
palette
);
...
...
src/game/clientgame.cpp
View file @
58b2311d
...
@@ -248,7 +248,7 @@ int ClientGame::setLevel (char* fileName) {
...
@@ -248,7 +248,7 @@ int ClientGame::setLevel (char* fileName) {
int
ret
;
int
ret
;
video
.
setPalette
(
menu
->
palettes
[
1
]
);
video
.
setPalette
(
menu
Palette
);
// Wait for level data to start arriving
// Wait for level data to start arriving
while
(
!
file
&&
levelFile
)
{
while
(
!
file
&&
levelFile
)
{
...
...
src/level/level.cpp
View file @
58b2311d
...
@@ -518,6 +518,7 @@ int Level::play () {
...
@@ -518,6 +518,7 @@ int Level::play () {
const
char
*
options
[
5
]
=
const
char
*
options
[
5
]
=
{
"continue game"
,
"save game"
,
"load game"
,
"setup options"
,
"quit game"
};
{
"continue game"
,
"save game"
,
"load game"
,
"setup options"
,
"quit game"
};
char
*
string
;
char
*
string
;
SetupMenu
setupMenu
;
bool
pmessage
,
pmenu
;
bool
pmessage
,
pmenu
;
int
stats
,
option
;
int
stats
,
option
;
unsigned
int
returnTime
;
unsigned
int
returnTime
;
...
@@ -592,7 +593,7 @@ int Level::play () {
...
@@ -592,7 +593,7 @@ int Level::play () {
if
(
!
gameMode
)
{
if
(
!
gameMode
)
{
if
(
menu
->
setup
()
==
E_QUIT
)
return
E_QUIT
;
if
(
setupMenu
.
setup
()
==
E_QUIT
)
return
E_QUIT
;
// Restore level palette
// Restore level palette
video
.
setPalette
(
palette
);
video
.
setPalette
(
palette
);
...
...
src/level/levelload.cpp
View file @
58b2311d
...
@@ -399,7 +399,7 @@ int Level::load (char *fileName, unsigned char diff, bool checkpoint) {
...
@@ -399,7 +399,7 @@ int Level::load (char *fileName, unsigned char diff, bool checkpoint) {
}
}
video
.
setPalette
(
menu
->
palettes
[
1
]);
video
.
setPalette
(
menu
Palette
);
clearScreen
(
0
);
clearScreen
(
0
);
...
...
src/main.cpp
View file @
58b2311d
...
@@ -676,9 +676,9 @@ int loop (LoopType type, PaletteEffect* paletteEffects) {
...
@@ -676,9 +676,9 @@ int loop (LoopType type, PaletteEffect* paletteEffects) {
int
main
(
int
argc
,
char
*
argv
[])
{
int
main
(
int
argc
,
char
*
argv
[])
{
MainMenu
*
mainMenu
=
NULL
;
Scene
*
scene
=
NULL
;
Scene
*
scene
=
NULL
;
// Initialise SDL
// Initialise SDL
if
(
SDL_Init
(
SDL_INIT_VIDEO
|
SDL_INIT_AUDIO
|
SDL_INIT_JOYSTICK
|
SDL_INIT_TIMER
)
<
0
)
{
if
(
SDL_Init
(
SDL_INIT_VIDEO
|
SDL_INIT_AUDIO
|
SDL_INIT_JOYSTICK
|
SDL_INIT_TIMER
)
<
0
)
{
...
@@ -730,7 +730,7 @@ int main(int argc, char *argv[]) {
...
@@ -730,7 +730,7 @@ int main(int argc, char *argv[]) {
// Load the menu
// Load the menu
try
{
try
{
m
enu
=
new
Menu
();
m
ainMenu
=
new
Main
Menu
();
}
catch
(
int
e
)
{
}
catch
(
int
e
)
{
...
@@ -741,7 +741,7 @@ int main(int argc, char *argv[]) {
...
@@ -741,7 +741,7 @@ int main(int argc, char *argv[]) {
}
}
// Run the main menu
// Run the main menu
if
(
menu
->
main
()
==
E_NONE
)
{
if
(
m
ainM
enu
->
main
()
==
E_NONE
)
{
// Show the ending cutscene
// Show the ending cutscene
...
@@ -751,7 +751,7 @@ int main(int argc, char *argv[]) {
...
@@ -751,7 +751,7 @@ int main(int argc, char *argv[]) {
}
catch
(
int
e
)
{
}
catch
(
int
e
)
{
delete
menu
;
delete
m
ainM
enu
;
freeMain
();
freeMain
();
return
e
;
return
e
;
...
@@ -765,7 +765,7 @@ int main(int argc, char *argv[]) {
...
@@ -765,7 +765,7 @@ int main(int argc, char *argv[]) {
}
}
delete
menu
;
delete
m
ainM
enu
;
freeMain
();
freeMain
();
...
...
src/menu/gamemenu.cpp
View file @
58b2311d
...
@@ -38,14 +38,84 @@
...
@@ -38,14 +38,84 @@
#include "util.h"
#include "util.h"
int
Menu
::
newGameDifficulty
(
GameModeType
mode
,
int
levelNum
,
int
worldNum
)
{
GameMenu
::
GameMenu
(
File
*
file
)
{
unsigned
char
pixel
;
int
count
,
col
;
// Load the difficulty graphics
file
->
loadPalette
(
menuPalette
);
difficultyScreen
=
file
->
loadSurface
(
SW
,
SH
);
SDL_SetColorKey
(
difficultyScreen
,
SDL_SRCCOLORKEY
,
0
);
// Default difficulty setting
difficulty
=
1
;
// Load the episode pictures (max. 10 episodes + bonus level)
// Load their palette
file
->
loadPalette
(
palette
);
// Generate a greyscale mapping
for
(
count
=
0
;
count
<
256
;
count
++
)
{
col
=
((
palette
[
count
].
r
>>
1
)
+
(
palette
[
count
].
g
<<
1
)
+
(
palette
[
count
].
b
>>
1
))
>>
3
;
if
(
col
>
79
)
col
=
79
;
greyPalette
[
count
].
r
=
greyPalette
[
count
].
g
=
greyPalette
[
count
].
b
=
col
;
}
episodes
=
11
;
for
(
count
=
0
;
count
<
11
;
count
++
)
{
episodeScreens
[
count
]
=
file
->
loadSurface
(
134
,
110
);
if
(
file
->
tell
()
>=
file
->
getSize
())
{
episodes
=
++
count
;
for
(;
count
<
11
;
count
++
)
{
pixel
=
0
;
episodeScreens
[
count
]
=
createSurface
(
&
pixel
,
1
,
1
);
}
}
}
return
;
}
GameMenu
::~
GameMenu
()
{
int
count
;
for
(
count
=
0
;
count
<
11
;
count
++
)
SDL_FreeSurface
(
episodeScreens
[
count
]);
SDL_FreeSurface
(
difficultyScreen
);
return
;
}
int
GameMenu
::
newGameDifficulty
(
GameModeType
mode
,
int
levelNum
,
int
worldNum
)
{
const
char
*
options
[
4
]
=
{
"easy"
,
"medium"
,
"hard"
,
"turbo"
};
const
char
*
options
[
4
]
=
{
"easy"
,
"medium"
,
"hard"
,
"turbo"
};
char
*
firstLevel
;
char
*
firstLevel
;
SDL_Rect
src
,
dst
;
SDL_Rect
src
,
dst
;
int
count
;
int
count
;
video
.
setPalette
(
palettes
[
1
]);
video
.
setPalette
(
menuPalette
);
while
(
true
)
{
while
(
true
)
{
...
@@ -74,7 +144,7 @@ int Menu::newGameDifficulty (GameModeType mode, int levelNum, int worldNum) {
...
@@ -74,7 +144,7 @@ int Menu::newGameDifficulty (GameModeType mode, int levelNum, int worldNum) {
src
.
h
=
100
;
src
.
h
=
100
;
dst
.
x
=
(
canvasW
>>
1
)
-
40
;
dst
.
x
=
(
canvasW
>>
1
)
-
40
;
dst
.
y
=
(
canvasH
>>
1
)
-
50
;
dst
.
y
=
(
canvasH
>>
1
)
-
50
;
SDL_BlitSurface
(
screens
[
2
]
,
&
src
,
canvas
,
&
dst
);
SDL_BlitSurface
(
difficultyScreen
,
&
src
,
canvas
,
&
dst
);
if
(
controls
.
release
(
C_UP
))
difficulty
=
(
difficulty
+
3
)
%
4
;
if
(
controls
.
release
(
C_UP
))
difficulty
=
(
difficulty
+
3
)
%
4
;
...
@@ -155,13 +225,13 @@ int Menu::newGameDifficulty (GameModeType mode, int levelNum, int worldNum) {
...
@@ -155,13 +225,13 @@ int Menu::newGameDifficulty (GameModeType mode, int levelNum, int worldNum) {
}
}
int
Menu
::
newGameLevel
(
GameModeType
mode
)
{
int
Game
Menu
::
newGameLevel
(
GameModeType
mode
)
{
int
option
,
worldNum
,
levelNum
;
int
option
,
worldNum
,
levelNum
;
worldNum
=
levelNum
=
option
=
0
;
worldNum
=
levelNum
=
option
=
0
;
video
.
setPalette
(
palettes
[
1
]);
video
.
setPalette
(
menuPalette
);
while
(
true
)
{
while
(
true
)
{
...
@@ -211,7 +281,7 @@ int Menu::newGameLevel (GameModeType mode) {
...
@@ -211,7 +281,7 @@ int Menu::newGameLevel (GameModeType mode) {
if
(
newGameDifficulty
(
mode
,
levelNum
,
worldNum
)
==
E_QUIT
)
if
(
newGameDifficulty
(
mode
,
levelNum
,
worldNum
)
==
E_QUIT
)
return
E_QUIT
;
return
E_QUIT
;
video
.
setPalette
(
palettes
[
1
]);
video
.
setPalette
(
menuPalette
);
}
}
...
@@ -222,7 +292,7 @@ int Menu::newGameLevel (GameModeType mode) {
...
@@ -222,7 +292,7 @@ int Menu::newGameLevel (GameModeType mode) {
}
}
int
Menu
::
newGameEpisode
(
GameModeType
mode
)
{
int
Game
Menu
::
newGameEpisode
(
GameModeType
mode
)
{
const
char
*
options
[
12
]
=
{
"episode 1"
,
"episode 2"
,
"episode 3"
,
const
char
*
options
[
12
]
=
{
"episode 1"
,
"episode 2"
,
"episode 3"
,
"episode 4"
,
"episode 5"
,
"episode 6"
,
"episode a"
,
"episode b"
,
"episode 4"
,
"episode 5"
,
"episode 6"
,
"episode a"
,
"episode b"
,
...
@@ -232,7 +302,7 @@ int Menu::newGameEpisode (GameModeType mode) {
...
@@ -232,7 +302,7 @@ int Menu::newGameEpisode (GameModeType mode) {
SDL_Rect
dst
;
SDL_Rect
dst
;
int
episode
,
count
,
worldNum
;
int
episode
,
count
,
worldNum
;
video
.
setPalette
(
palette
s
[
2
]
);
video
.
setPalette
(
palette
);
for
(
count
=
0
;
count
<
10
;
count
++
)
{
for
(
count
=
0
;
count
<
10
;
count
++
)
{
...
@@ -244,9 +314,8 @@ int Menu::newGameEpisode (GameModeType mode) {
...
@@ -244,9 +314,8 @@ int Menu::newGameEpisode (GameModeType mode) {
exists
[
count
]
=
fileExists
(
check
);
exists
[
count
]
=
fileExists
(
check
);
delete
[]
check
;
delete
[]
check
;
if
(
exists
[
count
])
video
.
restoreSurfacePalette
(
screens
[
count
+
3
]);
if
(
exists
[
count
])
video
.
restoreSurfacePalette
(
episodeScreens
[
count
]);
else
else
SDL_SetPalette
(
episodeScreens
[
count
],
SDL_LOGPAL
,
greyPalette
,
0
,
256
);
SDL_SetPalette
(
screens
[
count
+
3
],
SDL_LOGPAL
,
palettes
[
3
],
0
,
256
);
}
}
...
@@ -272,17 +341,16 @@ int Menu::newGameEpisode (GameModeType mode) {
...
@@ -272,17 +341,16 @@ int Menu::newGameEpisode (GameModeType mode) {
clearScreen
(
0
);
clearScreen
(
0
);
dst
.
x
=
canvasW
-
144
;
dst
.
y
=
(
canvasH
-
110
)
>>
1
;
if
((
episode
<
episodes
-
1
)
||
(
episode
<
6
))
{
if
((
episode
<
episodes
-
1
)
||
(
episode
<
6
))
{
dst
.
x
=
canvasW
-
150
;
SDL_BlitSurface
(
episodeScreens
[
episode
],
NULL
,
canvas
,
&
dst
);
dst
.
y
=
(
canvasH
-
110
)
>>
1
;
SDL_BlitSurface
(
screens
[
episode
+
3
],
NULL
,
canvas
,
&
dst
);
}
else
if
((
episode
==
10
)
&&
(
episodes
>
6
))
{
}
else
if
((
episode
==
10
)
&&
(
episodes
>
6
))
{
dst
.
x
=
canvasW
-
160
;
SDL_BlitSurface
(
episodeScreens
[
episodes
-
1
],
NULL
,
canvas
,
&
dst
);
dst
.
y
=
(
canvasH
-
110
)
>>
1
;
SDL_BlitSurface
(
screens
[
episodes
+
2
],
NULL
,
canvas
,
&
dst
);
}
}
...
@@ -333,7 +401,7 @@ int Menu::newGameEpisode (GameModeType mode) {
...
@@ -333,7 +401,7 @@ int Menu::newGameEpisode (GameModeType mode) {
}
}
video
.
setPalette
(
palette
s
[
2
]
);
video
.
setPalette
(
palette
);
}
}
...
@@ -346,7 +414,7 @@ int Menu::newGameEpisode (GameModeType mode) {
...
@@ -346,7 +414,7 @@ int Menu::newGameEpisode (GameModeType mode) {
}
}
int
Menu
::
joinGame
()
{
int
Game
Menu
::
joinGame
()
{
int
ret
;
int
ret
;
...
@@ -441,7 +509,44 @@ int Menu::joinGame () {
...
@@ -441,7 +509,44 @@ int Menu::joinGame () {
}
}
int
Menu
::
loadGame
()
{
int
GameMenu
::
newGame
()
{
#if (defined USE_SOCKETS) || (defined USE_SDL_NET)
const
char
*
newGameOptions
[
6
]
=
{
"new single player game"
,
"new co-op game"
,
"new battle"
,
"new team battle"
,
"new race"
,
"join game"
};
int
ret
;
int
option
;
option
=
0
;
while
(
true
)
{
ret
=
generic
(
newGameOptions
,
6
,
option
);
if
(
ret
==
E_QUIT
)
return
E_QUIT
;
if
(
ret
<
0
)
return
E_NONE
;
if
(
option
==
5
)
{
if
(
joinGame
()
==
E_QUIT
)
return
E_QUIT
;
}
else
{
if
(
newGameEpisode
(
GameModeType
(
option
))
==
E_QUIT
)
return
E_QUIT
;
}
}
return
E_NONE
;
#else
return
newGameEpisode
(
M_SINGLE
);
#endif
}
int
GameMenu
::
loadGame
()
{
// TODO: Actual loading of saved games
// TODO: Actual loading of saved games
...
@@ -449,4 +554,3 @@ int Menu::loadGame () {
...
@@ -449,4 +554,3 @@ int Menu::loadGame () {
}
}
src/menu/mainmenu.cpp
View file @
58b2311d
...
@@ -38,22 +38,120 @@
...
@@ -38,22 +38,120 @@
#include "scene/scene.h"
#include "scene/scene.h"
#include "loop.h"
#include "loop.h"
#include <time.h>
int
Menu
::
main
()
{
#if (defined USE_SOCKETS) || (defined USE_SDL_NET)
MainMenu
::
MainMenu
()
{
const
char
*
newGameOptions
[
6
]
=
{
"new single player game"
,
"new co-op game"
,
"new battle"
,
"new team battle"
,
"new race"
,
"join game"
};
File
*
file
;
int
ret
;
time_t
currentTime
;
#endif
// Load the OpenJazz logo
try
{
file
=
new
File
(
LOGO_FILE
,
false
);
}
catch
(
int
e
)
{
throw
e
;
}
logo
=
file
->
loadSurface
(
64
,
40
);
delete
file
;
// Load the menu graphics
try
{
file
=
new
File
(
F_MENU
,
false
);
}
catch
(
int
e
)
{
SDL_FreeSurface
(
logo
);
throw
e
;
}
if
(
file
->
getSize
()
>
200000
)
{
time
(
&
currentTime
);
// In December, load the Christmas menu graphics
if
(
localtime
(
&
currentTime
)
->
tm_mon
==
11
)
{
file
->
skipRLE
();
file
->
skipRLE
();
file
->
skipRLE
();
file
->
loadPalette
(
palette
);
background
=
file
->
loadSurface
(
SW
,
SH
);
highlight
=
file
->
loadSurface
(
SW
,
SH
);
}
else
{
file
->
loadPalette
(
palette
);
background
=
file
->
loadSurface
(
SW
,
SH
);
highlight
=
file
->
loadSurface
(
SW
,
SH
);
file
->
skipRLE
();
file
->
skipRLE
();
file
->
skipRLE
();
}
}
else
{
file
->
loadPalette
(
palette
);
background
=
file
->
loadSurface
(
SW
,
SH
);
highlight
=
file
->
loadSurface
(
SW
,
SH
);
}
SDL_SetColorKey
(
background
,
SDL_SRCCOLORKEY
,
0
);
SDL_SetColorKey
(
highlight
,
SDL_SRCCOLORKEY
,
0
);
gameMenu
=
new
GameMenu
(
file
);
delete
file
;
return
;
}
MainMenu
::~
MainMenu
()
{
SDL_FreeSurface
(
background
);
SDL_FreeSurface
(
highlight
);
SDL_FreeSurface
(
logo
);
delete
gameMenu
;
return
;
}
int
MainMenu
::
main
()
{
Scene
*
scene
;
Scene
*
scene
;
SetupMenu
setupMenu
;
SDL_Rect
src
,
dst
;
SDL_Rect
src
,
dst
;
int
option
,
suboption
;
int
option
;
unsigned
int
idleTime
;
unsigned
int
idleTime
;
option
=
suboption
=
0
;
option
=
0
;
video
.
setPalette
(
palettes
[
0
]);
video
.
setPalette
(
palette
);
playMusic
(
"menusng.psm"
);
// Demo timeout
// Demo timeout
idleTime
=
globalTicks
+
T_DEMO
;
idleTime
=
globalTicks
+
T_DEMO
;
...
@@ -72,38 +170,17 @@ int Menu::main () {
...
@@ -72,38 +170,17 @@ int Menu::main () {
playSound
(
S_ORB
);
playSound
(
S_ORB
);
switch
(
option
)
{
switch
(
option
)
{
case
0
:
// New game
case
0
:
// New game
#if (defined USE_SOCKETS) || (defined USE_SDL_NET)
if
(
gameMenu
->
newGame
()
==
E_QUIT
)
return
E_QUIT
;
while
(
true
)
{
ret
=
generic
(
newGameOptions
,
6
,
suboption
);
if
(
ret
==
E_QUIT
)
return
E_QUIT
;
if
(
ret
<
0
)
break
;
if
(
suboption
==
5
)
{
if
(
joinGame
()
==
E_QUIT
)
return
E_QUIT
;
}
else
{
if
(
newGameEpisode
(
GameModeType
(
suboption
))
==
E_QUIT
)
return
E_QUIT
;
}
}
#else
if
(
newGameEpisode
(
suboption
)
==
E_QUIT
)
return
E_QUIT
;
#endif
break
;
break
;
case
1
:
// Load game
case
1
:
// Load game
if
(
loadGame
()
==
E_QUIT
)
return
E_QUIT
;
if
(
gameMenu
->
loadGame
()
==
E_QUIT
)
return
E_QUIT
;
break
;
break
;
...
@@ -135,7 +212,7 @@ int Menu::main () {
...
@@ -135,7 +212,7 @@ int Menu::main () {
case
3
:
// Setup options
case
3
:
// Setup options
if
(
setup
()
==
E_QUIT
)
return
E_QUIT
;
if
(
setup
Menu
.
setup
()
==
E_QUIT
)
return
E_QUIT
;
break
;
break
;
...
@@ -172,7 +249,7 @@ int Menu::main () {
...
@@ -172,7 +249,7 @@ int Menu::main () {
}
}
// Restore the main menu palette
// Restore the main menu palette
video
.
setPalette
(
palette
s
[
0
]
);
video
.
setPalette
(
palette
);
// New demo timeout
// New demo timeout
idleTime
=
globalTicks
+
T_DEMO
;
idleTime
=
globalTicks
+
T_DEMO
;
...
@@ -223,7 +300,7 @@ int Menu::main () {
...
@@ -223,7 +300,7 @@ int Menu::main () {
playMusic
(
"menusng.psm"
);
playMusic
(
"menusng.psm"
);
// Restore the main menu palette
// Restore the main menu palette
video
.
setPalette
(
palette
s
[
0
]
);
video
.
setPalette
(
palette
);
idleTime
=
globalTicks
+
T_DEMO
;
idleTime
=
globalTicks
+
T_DEMO
;
...
@@ -235,11 +312,11 @@ int Menu::main () {
...
@@ -235,11 +312,11 @@ int Menu::main () {
dst
.
x
=
(
canvasW
>>
2
)
-
72
;
dst
.
x
=
(
canvasW
>>
2
)
-
72
;
dst
.
y
=
canvasH
-
(
canvasH
>>
2
);
dst
.
y
=
canvasH
-
(
canvasH
>>
2
);
SDL_BlitSurface
(
screens
[
14
]
,
NULL
,
canvas
,
&
dst
);
SDL_BlitSurface
(
logo
,
NULL
,
canvas
,
&
dst
);
dst
.
x
=
(
canvasW
-
SW
)
>>
1
;
dst
.
x
=
(
canvasW
-
SW
)
>>
1
;
dst
.
y
=
(
canvasH
-
SH
)
>>
1
;
dst
.
y
=
(
canvasH
-
SH
)
>>
1
;
SDL_BlitSurface
(
screens
[
0
]
,
NULL
,
canvas
,
&
dst
);
SDL_BlitSurface
(
background
,
NULL
,
canvas
,
&
dst
);
switch
(
option
)
{
switch
(
option
)
{
...
@@ -301,7 +378,7 @@ int Menu::main () {
...
@@ -301,7 +378,7 @@ int Menu::main () {
dst
.
x
=
((
canvasW
-
SW
)
>>
1
)
+
src
.
x
;
dst
.
x
=
((
canvasW
-
SW
)
>>
1
)
+
src
.
x
;
dst
.
y
=
((
canvasH
-
SH
)
>>
1
)
+
src
.
y
;
dst
.
y
=
((
canvasH
-
SH
)
>>
1
)
+
src
.
y
;
SDL_BlitSurface
(
screens
[
1
]
,
&
src
,
canvas
,
&
dst
);
SDL_BlitSurface
(
highlight
,
&
src
,
canvas
,
&
dst
);
}
}
...
...
src/menu/menu.cpp
View file @
58b2311d
...
@@ -10,6 +10,7 @@
...
@@ -10,6 +10,7 @@
* 18th July 2009: Created menuutil.cpp from parts of menu.cpp
* 18th July 2009: Created menuutil.cpp from parts of menu.cpp
* 18th July 2009: Created menusetup.cpp from parts of menu.cpp
* 18th July 2009: Created menusetup.cpp from parts of menu.cpp
* 19th July 2009: Created menumain.cpp from parts of menu.cpp
* 19th July 2009: Created menumain.cpp from parts of menu.cpp
* 23rd June 2010: Merged menuutil.cpp into menu.cpp
*
*
* Part of the OpenJazz project
* Part of the OpenJazz project
*
*
...
@@ -26,160 +27,218 @@
...
@@ -26,160 +27,218 @@
*/
*/
/*
/*
*
Deals with the loading and freeing of the menu data.
*
Provides various generic menus.
*
*
*/
*/
#include "menu.h"
#include "menu.h"
#include "
game/game.h"
#include "
io/controls.h"
#include "io/
file.h"
#include "io/
gfx/font.h"
#include "io/gfx/video.h"
#include "io/gfx/video.h"
#include "io/sound.h"
#include "io/sound.h"
#include "loop.h"
#include "util.h"
#include <
time.h>
#include <
string.h>
Menu
::
Menu
()
{
int
Menu
::
message
(
const
char
*
text
)
{
File
*
file
;
// Display a message to the user
unsigned
char
pixel
;
time_t
currentTime
;
int
count
,
col
;
video
.
setPalette
(
menuPalette
);
// Load the OpenJazz logo
while
(
true
)
{
try
{
if
(
loop
(
NORMAL_LOOP
)
==
E_QUIT
)
return
E_QUIT
;
file
=
new
File
(
LOGO_FILE
,
false
);
if
(
controls
.
release
(
C_ENTER
)
||
controls
.
release
(
C_ESCAPE
))
return
E_NONE
;
}
catch
(
int
e
)
{
SDL_Delay
(
T_FRAME
);
throw
e
;
clearScreen
(
15
);
// Draw the message
fontmn2
->
showString
(
text
,
canvasW
>>
2
,
(
canvasH
>>
1
)
-
16
);
}
}
screens
[
14
]
=
file
->
loadSurface
(
64
,
40
);
return
E_NONE
;
delete
file
;
}
// Load the menu graphics
int
Menu
::
generic
(
const
char
**
optionNames
,
int
options
,
int
&
chosen
)
{
try
{
// Let the user select from a menu of the given options
file
=
new
File
(
F_MENU
,
false
);
int
count
;
}
catch
(
int
e
)
{
video
.
setPalette
(
menuPalette
);
SDL_FreeSurface
(
screens
[
14
]);
if
(
chosen
>=
options
)
chosen
=
0
;
throw
e
;
while
(
true
)
{
}
if
(
loop
(
NORMAL_LOOP
)
==
E_QUIT
)
return
E_QUIT
;
if
(
controls
.
release
(
C_ESCAPE
))
return
E_UNUSED
;
file
->
seek
(
0
,
true
);
SDL_Delay
(
T_FRAME
);
// Load the main menu graphics
clearScreen
(
0
);
file
->
loadPalette
(
palettes
[
0
]);
screens
[
0
]
=
file
->
loadSurface
(
SW
,
SH
);
screens
[
1
]
=
file
->
loadSurface
(
SW
,
SH
);
for
(
count
=
0
;
count
<
options
;
count
++
)
{
if
(
file
->
getSize
()
>
200000
)
{
if
(
count
==
chosen
)
fontmn2
->
mapPalette
(
240
,
8
,
114
,
16
);
time
(
&
currentTime
);
fontmn2
->
showString
(
optionNames
[
count
],
canvasW
>>
2
,
(
canvasH
>>
1
)
+
(
count
<<
4
)
-
(
options
<<
3
));
// In December, load the Christmas menu graphics
if
(
count
==
chosen
)
fontmn2
->
restorePalette
();
if
(
localtime
(
&
currentTime
)
->
tm_mon
==
11
)
{
SDL_FreeSurface
(
screens
[
0
]);
}
SDL_FreeSurface
(
screens
[
1
]);
file
->
loadPalette
(
palettes
[
0
]);
if
(
controls
.
release
(
C_UP
))
chosen
=
(
chosen
+
options
-
1
)
%
options
;
screens
[
0
]
=
file
->
loadSurface
(
SW
,
SH
);
screens
[
1
]
=
file
->
loadSurface
(
SW
,
SH
);
if
(
controls
.
release
(
C_DOWN
))
chosen
=
(
chosen
+
1
)
%
options
;
}
else
{
if
(
controls
.
release
(
C_ENTER
))
{
file
->
skipRLE
();
playSound
(
S_ORB
);
file
->
skipRLE
();
file
->
skipRLE
();
return
E_NONE
;
}
}
}
}
SDL_SetColorKey
(
screens
[
0
],
SDL_SRCCOLORKEY
,
0
);
return
E_NONE
;
SDL_SetColorKey
(
screens
[
1
],
SDL_SRCCOLORKEY
,
0
);
}
// Load the difficulty graphics
file
->
loadPalette
(
palettes
[
1
]);
screens
[
2
]
=
file
->
loadSurface
(
SW
,
SH
);
SDL_SetColorKey
(
screens
[
2
],
SDL_SRCCOLORKEY
,
0
);
// Default difficulty setting
int
Menu
::
textInput
(
const
char
*
request
,
char
*&
text
)
{
difficulty
=
1
;
// Let the user to edit a text string
// Load the episode pictures (max. 10 episodes + bonus level)
char
*
input
;
int
count
,
terminate
,
character
,
x
;
unsigned
int
cursor
;
//
Load their palette
//
Create input string
file
->
loadPalette
(
palettes
[
2
]);
input
=
createEditableString
(
text
);
// Generate a greyscale mapping
cursor
=
strlen
(
input
);
for
(
count
=
0
;
count
<
256
;
count
++
)
{
col
=
((
palettes
[
2
][
count
].
r
>>
1
)
+
(
palettes
[
2
][
count
].
g
<<
1
)
+
while
(
true
)
{
(
palettes
[
2
][
count
].
b
>>
1
))
>>
3
;
if
(
col
>
79
)
col
=
79
;
character
=
loop
(
TYPING_LOOP
);
palettes
[
3
][
count
].
r
=
palettes
[
3
][
count
].
g
=
palettes
[
3
][
count
].
b
=
if
(
character
==
E_QUIT
)
{
col
;
delete
[]
input
;
return
E_QUIT
;
}
}
episodes
=
11
;
// Ensure there is space for another character
if
(
cursor
<
STRING_LENGTH
)
{
for
(
count
=
0
;
count
<
11
;
count
++
)
{
terminate
=
(
input
[
cursor
]
==
0
);
screens
[
count
+
3
]
=
file
->
loadSurface
(
134
,
110
);
// If the character is valid, add it to the input string
if
(
file
->
tell
()
>=
file
->
getSize
())
{
if
((
character
==
' '
)
||
(
character
==
'.'
)
||
((
character
>=
'0'
)
&&
(
character
<=
'9'
))
||
((
character
>=
'a'
)
&&
(
character
<=
'z'
)))
{
episodes
=
++
count
;
input
[
cursor
]
=
character
;
cursor
++
;
if
(
terminate
)
input
[
cursor
]
=
0
;
for
(;
count
<
11
;
count
++
)
{
}
else
if
((
character
>=
'A'
)
&&
(
character
<=
'Z'
))
{
pixel
=
0
;
input
[
cursor
]
=
character
|
32
;
screens
[
count
+
3
]
=
createSurface
(
&
pixel
,
1
,
1
);
cursor
++
;
if
(
terminate
)
input
[
cursor
]
=
0
;
}
}
}
}
if
((
character
==
SDLK_DELETE
)
&&
(
cursor
<
strlen
(
input
)))
{
for
(
count
=
cursor
;
count
<
STRING_LENGTH
;
count
++
)
input
[
count
]
=
input
[
count
+
1
];
}
}
delete
file
;
if
((
character
==
SDLK_BACKSPACE
)
&&
(
cursor
>
0
))
{
playMusic
(
"menusng.psm"
);
for
(
count
=
cursor
-
1
;
count
<
STRING_LENGTH
;
count
++
)
input
[
count
]
=
input
[
count
+
1
];
return
;
cursor
--
;
}
}
Menu
::~
Menu
()
{
if
(
controls
.
release
(
C_ESCAPE
))
{
int
count
;
delete
[]
input
;
for
(
count
=
0
;
count
<
15
;
count
++
)
SDL_FreeSurface
(
screens
[
count
]);
return
E_UNUSED
;
return
;
}
}
SDL_Delay
(
T_FRAME
);
clearScreen
(
15
);
// Draw the prompt
fontmn2
->
showString
(
request
,
canvasW
>>
2
,
(
canvasH
>>
1
)
-
16
);
// Draw the section of the text before the cursor
fontmn2
->
mapPalette
(
240
,
8
,
114
,
16
);
terminate
=
input
[
cursor
];
input
[
cursor
]
=
0
;
x
=
fontmn2
->
showString
(
input
,
(
canvasW
>>
2
)
+
8
,
canvasH
>>
1
);
// Draw the cursor
drawRect
(
x
,
(
canvasH
>>
1
)
+
10
,
8
,
2
,
79
);
// Draw the section of text after the cursor
input
[
cursor
]
=
terminate
;
fontmn2
->
showString
(
input
+
cursor
,
x
,
canvasH
>>
1
);
fontmn2
->
restorePalette
();
if
(
controls
.
release
(
C_LEFT
)
&&
(
cursor
>
0
))
cursor
--
;
if
(
controls
.
release
(
C_RIGHT
)
&&
(
cursor
<
strlen
(
input
)))
cursor
++
;
if
(
controls
.
release
(
C_ENTER
))
{
playSound
(
S_ORB
);
// Replace the original string with the input string
delete
[]
text
;
text
=
input
;
return
E_NONE
;
}
}
delete
[]
input
;
return
E_UNUSED
;
}
src/menu/menu.h
View file @
58b2311d
...
@@ -25,6 +25,7 @@
...
@@ -25,6 +25,7 @@
#include "game/gamemode.h"
#include "game/gamemode.h"
#include "io/file.h"
#include "OpenJazz.h"
#include "OpenJazz.h"
...
@@ -36,23 +37,47 @@
...
@@ -36,23 +37,47 @@
// Demo timeout
// Demo timeout
#define T_DEMO 20000
#define T_DEMO 20000
// Class
// Classes
class
Menu
{
class
Menu
{
protected
:
int
message
(
const
char
*
text
);
int
generic
(
const
char
**
optionNames
,
int
options
,
int
&
chosen
);
int
textInput
(
const
char
*
request
,
char
*&
text
);
};
class
GameMenu
:
public
Menu
{
private
:
private
:
SDL_Surface
*
screens
[
15
];
SDL_Surface
*
episodeScreens
[
11
];
SDL_Surface
*
difficultyScreen
;
SDL_Color
palette
[
256
];
SDL_Color
greyPalette
[
256
];
int
episodes
;
int
episodes
;
unsigned
char
difficulty
;
unsigned
char
difficulty
;
int
message
(
const
char
*
text
);
int
generic
(
const
char
**
optionNames
,
int
options
,
int
&
chosen
);
int
textInput
(
const
char
*
request
,
char
*&
text
);
int
newGameDifficulty
(
GameModeType
mode
,
int
levelNum
,
int
worldNum
);
int
newGameDifficulty
(
GameModeType
mode
,
int
levelNum
,
int
worldNum
);
int
newGameLevel
(
GameModeType
mode
);
int
newGameLevel
(
GameModeType
mode
);
int
newGameEpisode
(
GameModeType
mode
);
int
newGameEpisode
(
GameModeType
mode
);
int
joinGame
();
int
joinGame
();
public
:
GameMenu
(
File
*
file
);
~
GameMenu
();
int
newGame
();
int
loadGame
();
int
loadGame
();
};
class
SetupMenu
:
public
Menu
{
private
:
int
setupKeyboard
();
int
setupKeyboard
();
int
setupJoystick
();
int
setupJoystick
();
int
setupResolution
();
int
setupResolution
();
...
@@ -62,12 +87,24 @@ class Menu {
...
@@ -62,12 +87,24 @@ class Menu {
int
setupSound
();
int
setupSound
();
public
:
public
:
SDL_Color
palettes
[
4
][
256
];
int
setup
();
Menu
();
};
~
Menu
();
class
MainMenu
:
public
Menu
{
private
:
SDL_Surface
*
background
;
SDL_Surface
*
highlight
;
SDL_Surface
*
logo
;
GameMenu
*
gameMenu
;
SDL_Color
palette
[
256
];
public
:
MainMenu
();
~
MainMenu
();
int
setup
();
int
main
();
int
main
();
};
};
...
@@ -75,7 +112,7 @@ class Menu {
...
@@ -75,7 +112,7 @@ class Menu {
// Variable
// Variable
EXTERN
Menu
*
menu
;
EXTERN
SDL_Color
menuPalette
[
256
];
#endif
#endif
src/menu/menuutil.cpp
deleted
100644 → 0
View file @
fcd9bfa7
/*
*
* menuutil.cpp
*
* 18th July 2009: Created menuutil.cpp from parts of menu.cpp
*
* Part of the OpenJazz project
*
*
* Copyright (c) 2005-2010 Alister Thomson
*
* OpenJazz is distributed under the terms of
* the GNU General Public License, version 2.0
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*/
/*
* Provides various generic menus.
*
*/
#include "menu.h"
#include "io/controls.h"
#include "io/gfx/font.h"
#include "io/gfx/video.h"
#include "io/sound.h"
#include "loop.h"
#include "util.h"
#include <string.h>
int
Menu
::
message
(
const
char
*
text
)
{
// Display a message to the user
video
.
setPalette
(
palettes
[
1
]);
while
(
true
)
{
if
(
loop
(
NORMAL_LOOP
)
==
E_QUIT
)
return
E_QUIT
;
if
(
controls
.
release
(
C_ENTER
)
||
controls
.
release
(
C_ESCAPE
))
return
E_NONE
;
SDL_Delay
(
T_FRAME
);
clearScreen
(
15
);
// Draw the message
fontmn2
->
showString
(
text
,
canvasW
>>
2
,
(
canvasH
>>
1
)
-
16
);
}
return
E_NONE
;
}
int
Menu
::
generic
(
const
char
**
optionNames
,
int
options
,
int
&
chosen
)
{
// Let the user select from a menu of the given options
int
count
;
video
.
setPalette
(
palettes
[
1
]);
if
(
chosen
>=
options
)
chosen
=
0
;
while
(
true
)
{
if
(
loop
(
NORMAL_LOOP
)
==
E_QUIT
)
return
E_QUIT
;
if
(
controls
.
release
(
C_ESCAPE
))
return
E_UNUSED
;
SDL_Delay
(
T_FRAME
);
clearScreen
(
0
);
for
(
count
=
0
;
count
<
options
;
count
++
)
{
if
(
count
==
chosen
)
fontmn2
->
mapPalette
(
240
,
8
,
114
,
16
);
fontmn2
->
showString
(
optionNames
[
count
],
canvasW
>>
2
,
(
canvasH
>>
1
)
+
(
count
<<
4
)
-
(
options
<<
3
));
if
(
count
==
chosen
)
fontmn2
->
restorePalette
();
}
if
(
controls
.
release
(
C_UP
))
chosen
=
(
chosen
+
options
-
1
)
%
options
;
if
(
controls
.
release
(
C_DOWN
))
chosen
=
(
chosen
+
1
)
%
options
;
if
(
controls
.
release
(
C_ENTER
))
{
playSound
(
S_ORB
);
return
E_NONE
;
}
}
return
E_NONE
;
}
int
Menu
::
textInput
(
const
char
*
request
,
char
*&
text
)
{
// Let the user to edit a text string
char
*
input
;
int
count
,
terminate
,
character
,
x
;
unsigned
int
cursor
;
// Create input string
input
=
createEditableString
(
text
);
cursor
=
strlen
(
input
);
while
(
true
)
{
character
=
loop
(
TYPING_LOOP
);
if
(
character
==
E_QUIT
)
{
delete
[]
input
;
return
E_QUIT
;
}
// Ensure there is space for another character
if
(
cursor
<
STRING_LENGTH
)
{
terminate
=
(
input
[
cursor
]
==
0
);
// If the character is valid, add it to the input string
if
((
character
==
' '
)
||
(
character
==
'.'
)
||
((
character
>=
'0'
)
&&
(
character
<=
'9'
))
||
((
character
>=
'a'
)
&&
(
character
<=
'z'
)))
{
input
[
cursor
]
=
character
;
cursor
++
;
if
(
terminate
)
input
[
cursor
]
=
0
;
}
else
if
((
character
>=
'A'
)
&&
(
character
<=
'Z'
))
{
input
[
cursor
]
=
character
|
32
;
cursor
++
;
if
(
terminate
)
input
[
cursor
]
=
0
;
}
}
if
((
character
==
SDLK_DELETE
)
&&
(
cursor
<
strlen
(
input
)))
{
for
(
count
=
cursor
;
count
<
STRING_LENGTH
;
count
++
)
input
[
count
]
=
input
[
count
+
1
];
}
if
((
character
==
SDLK_BACKSPACE
)
&&
(
cursor
>
0
))
{
for
(
count
=
cursor
-
1
;
count
<
STRING_LENGTH
;
count
++
)
input
[
count
]
=
input
[
count
+
1
];
cursor
--
;
}
if
(
controls
.
release
(
C_ESCAPE
))
{
delete
[]
input
;
return
E_UNUSED
;
}
SDL_Delay
(
T_FRAME
);
clearScreen
(
15
);
// Draw the prompt
fontmn2
->
showString
(
request
,
canvasW
>>
2
,
(
canvasH
>>
1
)
-
16
);
// Draw the section of the text before the cursor
fontmn2
->
mapPalette
(
240
,
8
,
114
,
16
);
terminate
=
input
[
cursor
];
input
[
cursor
]
=
0
;
x
=
fontmn2
->
showString
(
input
,
(
canvasW
>>
2
)
+
8
,
canvasH
>>
1
);
// Draw the cursor
drawRect
(
x
,
(
canvasH
>>
1
)
+
10
,
8
,
2
,
79
);
// Draw the section of text after the cursor
input
[
cursor
]
=
terminate
;
fontmn2
->
showString
(
input
+
cursor
,
x
,
canvasH
>>
1
);
fontmn2
->
restorePalette
();
if
(
controls
.
release
(
C_LEFT
)
&&
(
cursor
>
0
))
cursor
--
;
if
(
controls
.
release
(
C_RIGHT
)
&&
(
cursor
<
strlen
(
input
)))
cursor
++
;
if
(
controls
.
release
(
C_ENTER
))
{
playSound
(
S_ORB
);
// Replace the original string with the input string
delete
[]
text
;
text
=
input
;
return
E_NONE
;
}
}
delete
[]
input
;
return
E_UNUSED
;
}
src/menu/setupmenu.cpp
View file @
58b2311d
...
@@ -36,7 +36,7 @@
...
@@ -36,7 +36,7 @@
#include "loop.h"
#include "loop.h"
int
Menu
::
setupKeyboard
()
{
int
Setup
Menu
::
setupKeyboard
()
{
const
char
*
options
[
PCONTROLS
]
=
{
"up"
,
"down"
,
"left"
,
"right"
,
"jump"
,
"swim up"
,
"fire"
,
"weapon"
};
const
char
*
options
[
PCONTROLS
]
=
{
"up"
,
"down"
,
"left"
,
"right"
,
"jump"
,
"swim up"
,
"fire"
,
"weapon"
};
int
progress
,
count
,
character
;
int
progress
,
count
,
character
;
...
@@ -115,7 +115,7 @@ int Menu::setupKeyboard () {
...
@@ -115,7 +115,7 @@ int Menu::setupKeyboard () {
}
}
int
Menu
::
setupJoystick
()
{
int
Setup
Menu
::
setupJoystick
()
{
const
char
*
options
[
PCONTROLS
]
=
{
"up"
,
"down"
,
"left"
,
"right"
,
"jump"
,
"swim up"
,
"fire"
,
"weapon"
};
const
char
*
options
[
PCONTROLS
]
=
{
"up"
,
"down"
,
"left"
,
"right"
,
"jump"
,
"swim up"
,
"fire"
,
"weapon"
};
int
progress
,
count
,
control
;
int
progress
,
count
,
control
;
...
@@ -254,7 +254,7 @@ int Menu::setupJoystick () {
...
@@ -254,7 +254,7 @@ int Menu::setupJoystick () {
}
}
int
Menu
::
setupResolution
()
{
int
Setup
Menu
::
setupResolution
()
{
int
widthOptions
[]
=
{
320
,
400
,
512
,
640
,
720
,
768
,
800
,
960
,
1024
,
1152
,
int
widthOptions
[]
=
{
320
,
400
,
512
,
640
,
720
,
768
,
800
,
960
,
1024
,
1152
,
1280
,
1440
,
1600
,
1920
};
1280
,
1440
,
1600
,
1920
};
...
@@ -405,7 +405,7 @@ int Menu::setupResolution () {
...
@@ -405,7 +405,7 @@ int Menu::setupResolution () {
#ifdef SCALE
#ifdef SCALE
int
Menu
::
setupScaling
()
{
int
Setup
Menu
::
setupScaling
()
{
int
scaleFactor
;
int
scaleFactor
;
...
@@ -466,7 +466,7 @@ int Menu::setupScaling () {
...
@@ -466,7 +466,7 @@ int Menu::setupScaling () {
#endif
#endif
int
Menu
::
setupSound
()
{
int
Setup
Menu
::
setupSound
()
{
while
(
true
)
{
while
(
true
)
{
...
@@ -501,7 +501,7 @@ int Menu::setupSound () {
...
@@ -501,7 +501,7 @@ int Menu::setupSound () {
}
}
int
Menu
::
setup
()
{
int
Setup
Menu
::
setup
()
{
const
char
*
setupOptions
[
6
]
=
{
"character"
,
"keyboard"
,
"joystick"
,
"resolution"
,
"scaling"
,
"sound"
};
const
char
*
setupOptions
[
6
]
=
{
"character"
,
"keyboard"
,
"joystick"
,
"resolution"
,
"scaling"
,
"sound"
};
const
char
*
setupCharacterOptions
[
5
]
=
{
"name"
,
"fur"
,
"bandana"
,
"gun"
,
"wristband"
};
const
char
*
setupCharacterOptions
[
5
]
=
{
"name"
,
"fur"
,
"bandana"
,
"gun"
,
"wristband"
};
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment