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
28218a7d
Commit
28218a7d
authored
Jul 11, 2010
by
alistert
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Slight simplification to game mode handling.
parent
b03fa295
Changes
24
Show whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
180 additions
and
155 deletions
+180
-155
baselevel.cpp
src/baselevel.cpp
+6
-6
baselevel.h
src/baselevel.h
+2
-1
bonus.cpp
src/bonus/bonus.cpp
+4
-1
bonus.h
src/bonus/bonus.h
+1
-1
clientgame.cpp
src/game/clientgame.cpp
+11
-11
game.cpp
src/game/game.cpp
+67
-23
game.h
src/game/game.h
+7
-3
gamemode.cpp
src/game/gamemode.cpp
+21
-43
gamemode.h
src/game/gamemode.h
+10
-13
servergame.cpp
src/game/servergame.cpp
+5
-5
jj2level.cpp
src/jj2level/jj2level.cpp
+6
-4
jj2level.h
src/jj2level/jj2level.h
+1
-1
jj2levelframe.cpp
src/jj2level/jj2levelframe.cpp
+2
-2
jj2levelload.cpp
src/jj2level/jj2levelload.cpp
+1
-1
demolevel.cpp
src/level/demolevel.cpp
+2
-2
eventframe.cpp
src/level/event/eventframe.cpp
+4
-2
level.cpp
src/level/level.cpp
+10
-8
level.h
src/level/level.h
+1
-1
levelframe.cpp
src/level/levelframe.cpp
+8
-4
levelload.cpp
src/level/levelload.cpp
+1
-1
jj2levelplayer.cpp
src/player/jj2levelplayer.cpp
+2
-2
jj2levelplayerframe.cpp
src/player/jj2levelplayerframe.cpp
+2
-8
levelplayer.cpp
src/player/levelplayer.cpp
+5
-11
levelplayerframe.cpp
src/player/levelplayerframe.cpp
+1
-1
No files found.
src/baselevel.cpp
View file @
28218a7d
...
...
@@ -210,7 +210,7 @@ int BaseLevel::loop (bool& menu, int& option, bool& message) {
int
ret
;
// Networking
if
(
gameMode
)
{
if
(
multiplayer
)
{
ret
=
game
->
step
(
ticks
);
...
...
@@ -248,7 +248,7 @@ int BaseLevel::loop (bool& menu, int& option, bool& message) {
if
(
controls
.
release
(
C_STATS
))
{
if
(
!
gameMode
)
stats
^=
S_SCREEN
;
if
(
!
multiplayer
)
stats
^=
S_SCREEN
;
else
stats
=
(
stats
+
1
)
&
3
;
}
...
...
@@ -281,7 +281,7 @@ int BaseLevel::loop (bool& menu, int& option, bool& message) {
case
3
:
// Setup
if
(
!
gameMode
)
{
if
(
!
multiplayer
)
{
if
(
setupMenu
.
setup
()
==
E_QUIT
)
return
E_QUIT
;
...
...
@@ -302,7 +302,7 @@ int BaseLevel::loop (bool& menu, int& option, bool& message) {
}
if
(
!
gameMode
)
paused
=
message
||
menu
;
if
(
!
multiplayer
)
paused
=
message
||
menu
;
timeCalcs
();
...
...
@@ -319,7 +319,7 @@ void BaseLevel::addTimer () {
endTime
+=
2
*
60
*
1000
;
// 2 minutes. Is this right?
if
(
gameMode
)
{
if
(
multiplayer
)
{
buffer
[
0
]
=
MTL_L_PROP
;
buffer
[
1
]
=
MT_L_PROP
;
...
...
@@ -344,7 +344,7 @@ void BaseLevel::setStage (LevelStage newStage) {
stage
=
newStage
;
if
(
gameMode
)
{
if
(
multiplayer
)
{
buffer
[
0
]
=
MTL_L_STAGE
;
buffer
[
1
]
=
MT_L_STAGE
;
...
...
src/baselevel.h
View file @
28218a7d
...
...
@@ -76,6 +76,7 @@ class BaseLevel {
unsigned
int
endTime
;
float
smoothfps
;
int
items
;
bool
multiplayer
;
bool
paused
;
LevelStage
stage
;
int
stats
;
...
...
src/bonus/bonus.cpp
View file @
28218a7d
...
...
@@ -183,7 +183,7 @@ int Bonus::loadTiles (char *fileName) {
}
Bonus
::
Bonus
(
char
*
fileName
,
unsigned
char
diff
)
{
Bonus
::
Bonus
(
char
*
fileName
,
unsigned
char
diff
,
bool
multi
)
{
Anim
*
pAnims
[
BPANIMS
];
File
*
file
;
...
...
@@ -369,6 +369,9 @@ Bonus::Bonus (char * fileName, unsigned char diff) {
panelBigFont
->
mapPalette
(
0
,
32
,
15
,
-
16
);
multiplayer
=
multi
;
return
;
}
...
...
src/bonus/bonus.h
View file @
28218a7d
...
...
@@ -73,7 +73,7 @@ class Bonus : public BaseLevel {
void
draw
();
public
:
Bonus
(
char
*
fileName
,
unsigned
char
diff
);
Bonus
(
char
*
fileName
,
unsigned
char
diff
,
bool
multi
);
~
Bonus
();
bool
checkMask
(
fixed
x
,
fixed
y
);
...
...
src/game/clientgame.cpp
View file @
28218a7d
...
...
@@ -43,7 +43,7 @@ ClientGame::ClientGame (char* address) {
unsigned
char
buffer
[
BUFFER_LENGTH
];
unsigned
int
timeout
;
int
count
,
ret
;
GameModeType
mode
;
GameModeType
mode
Type
;
sock
=
net
->
join
(
address
);
...
...
@@ -111,13 +111,13 @@ ClientGame::ClientGame (char* address) {
printf
(
"Connected to server (version %d).
\n
"
,
buffer
[
2
]);
// Copy game parameters
mode
=
GameModeType
(
buffer
[
3
]);
mode
Type
=
GameModeType
(
buffer
[
3
]);
difficulty
=
buffer
[
4
];
maxPlayers
=
buffer
[
5
];
nPlayers
=
buffer
[
6
];
clientID
=
buffer
[
7
];
printf
(
"Game mode %d, difficulty %d, %d of %d players.
\n
"
,
mode
,
difficulty
,
nPlayers
,
maxPlayers
);
printf
(
"Game mode %d, difficulty %d, %d of %d players.
\n
"
,
mode
Type
,
difficulty
,
nPlayers
,
maxPlayers
);
if
(
nPlayers
>
maxPlayers
)
{
...
...
@@ -128,9 +128,9 @@ ClientGame::ClientGame (char* address) {
}
gameMode
=
createGameMode
(
mod
e
);
mode
=
createMode
(
modeTyp
e
);
if
(
gameMode
==
NULL
)
{
if
(
!
mode
)
{
net
->
close
(
sock
);
...
...
@@ -157,7 +157,7 @@ ClientGame::ClientGame (char* address) {
if
(
file
)
delete
file
;
delete
gameM
ode
;
delete
m
ode
;
throw
ret
;
...
...
@@ -187,7 +187,7 @@ ClientGame::ClientGame (char* address) {
if
(
file
)
delete
file
;
delete
gameM
ode
;
delete
m
ode
;
throw
E_QUIT
;
...
...
@@ -199,7 +199,7 @@ ClientGame::ClientGame (char* address) {
if
(
file
)
delete
file
;
delete
gameM
ode
;
delete
m
ode
;
throw
E_UNUSED
;
...
...
@@ -216,7 +216,7 @@ ClientGame::ClientGame (char* address) {
if
(
file
)
delete
file
;
delete
gameM
ode
;
delete
m
ode
;
throw
ret
;
...
...
@@ -235,7 +235,7 @@ ClientGame::~ClientGame () {
if
(
file
)
delete
file
;
delete
gameM
ode
;
delete
m
ode
;
return
;
...
...
@@ -524,7 +524,7 @@ void ClientGame::setCheckpoint (unsigned char gridX, unsigned char gridY) {
unsigned
char
buffer
[
MTL_G_CHECK
];
if
(
gameM
ode
)
{
if
(
m
ode
)
{
buffer
[
0
]
=
MTL_G_CHECK
;
buffer
[
1
]
=
MT_G_CHECK
;
...
...
src/game/game.cpp
View file @
28218a7d
...
...
@@ -58,7 +58,7 @@ Game::Game (char *firstLevel, int gameDifficulty) {
difficulty
=
gameDifficulty
;
gameMode
=
NULL
;
mode
=
new
SingleGameMode
()
;
// Create the player
nPlayers
=
1
;
...
...
@@ -82,6 +82,44 @@ Game::~Game () {
}
GameMode
*
Game
::
createMode
(
GameModeType
modeType
)
{
switch
(
modeType
)
{
case
M_SINGLE
:
return
new
SingleGameMode
();
case
M_COOP
:
return
new
CoopGameMode
();
case
M_BATTLE
:
return
new
BattleGameMode
();
case
M_TEAMBATTLE
:
return
new
TeamBattleGameMode
();
case
M_RACE
:
return
new
RaceGameMode
();
}
return
NULL
;
}
GameMode
*
Game
::
getMode
()
{
return
mode
;
}
int
Game
::
setLevel
(
char
*
fileName
)
{
if
(
levelFile
)
delete
[]
levelFile
;
...
...
@@ -99,10 +137,12 @@ int Game::play () {
Planet
*
planet
;
Bonus
*
bonus
;
char
*
fileName
;
bool
multiplayer
;
bool
checkpoint
;
int
ret
;
int
planetId
;
multiplayer
=
(
mode
->
getMode
()
!=
M_SINGLE
);
checkpoint
=
false
;
planetId
=
-
1
;
...
...
@@ -120,7 +160,7 @@ int Game::play () {
try
{
baseLevel
=
bonus
=
new
Bonus
(
levelFile
,
difficulty
);
baseLevel
=
bonus
=
new
Bonus
(
levelFile
,
difficulty
,
multiplayer
);
}
catch
(
int
e
)
{
...
...
@@ -155,7 +195,7 @@ int Game::play () {
try
{
baseLevel
=
jj2Level
=
new
JJ2Level
(
levelFile
,
difficulty
,
checkpoint
);
baseLevel
=
jj2Level
=
new
JJ2Level
(
levelFile
,
difficulty
,
checkpoint
,
multiplayer
);
}
catch
(
int
e
)
{
...
...
@@ -200,7 +240,7 @@ int Game::play () {
try
{
baseLevel
=
level
=
new
Level
(
levelFile
,
difficulty
,
checkpoint
);
baseLevel
=
level
=
new
Level
(
levelFile
,
difficulty
,
checkpoint
,
multiplayer
);
}
catch
(
int
e
)
{
...
...
@@ -208,6 +248,8 @@ int Game::play () {
}
if
(
!
multiplayer
)
{
planet
=
NULL
;
fileName
=
createFileName
(
F_PLANET
,
level
->
getWorld
());
...
...
@@ -240,6 +282,8 @@ int Game::play () {
}
}
ret
=
level
->
play
();
if
(
ret
<=
0
)
{
...
...
src/game/game.h
View file @
28218a7d
...
...
@@ -86,17 +86,21 @@ class File;
class
Game
{
protected
:
char
*
levelFile
;
GameMode
*
mode
;
char
*
levelFile
;
int
difficulty
;
unsigned
int
sendTime
,
checkTime
;
unsigned
char
checkX
,
checkY
;
Game
();
GameMode
*
createMode
(
GameModeType
modeType
);
public
:
Game
(
char
*
firstLevel
,
int
gameDifficulty
);
virtual
~
Game
();
GameMode
*
getMode
();
virtual
int
setLevel
(
char
*
fileName
);
int
play
();
void
view
(
int
change
);
...
...
src/game/gamemode.cpp
View file @
28218a7d
...
...
@@ -62,6 +62,27 @@ void GameMode::outOfTime () {
}
GameModeType
SingleGameMode
::
getMode
()
{
return
M_SINGLE
;
}
unsigned
char
SingleGameMode
::
chooseTeam
()
{
return
0
;
}
void
SingleGameMode
::
drawScore
(
Font
*
font
)
{
return
;
}
unsigned
char
CooperativeGameMode
::
chooseTeam
()
{
// All players are on the same team
...
...
@@ -153,17 +174,6 @@ GameModeType CoopGameMode::getMode () {
}
bool
CoopGameMode
::
endOfLevel
(
Player
*
player
,
unsigned
char
gridX
,
unsigned
char
gridY
)
{
game
->
setCheckpoint
(
gridX
,
gridY
);
baseLevel
->
setStage
(
LS_END
);
return
true
;
}
GameModeType
BattleGameMode
::
getMode
()
{
return
M_BATTLE
;
...
...
@@ -202,35 +212,3 @@ bool RaceGameMode::endOfLevel (Player *player, unsigned char gridX, unsigned cha
}
GameMode
*
createGameMode
(
GameModeType
mode
)
{
switch
(
mode
)
{
case
M_SINGLE
:
return
NULL
;
case
M_COOP
:
return
new
CoopGameMode
();
case
M_BATTLE
:
return
new
BattleGameMode
();
case
M_TEAMBATTLE
:
return
new
TeamBattleGameMode
();
case
M_RACE
:
return
new
RaceGameMode
();
}
return
NULL
;
}
src/game/gamemode.h
View file @
28218a7d
...
...
@@ -59,6 +59,15 @@ class GameMode {
};
class
SingleGameMode
:
public
GameMode
{
public
:
GameModeType
getMode
();
unsigned
char
chooseTeam
();
void
drawScore
(
Font
*
font
);
};
class
CooperativeGameMode
:
public
GameMode
{
public
:
...
...
@@ -87,7 +96,6 @@ class CoopGameMode : public CooperativeGameMode {
public
:
GameModeType
getMode
();
bool
endOfLevel
(
Player
*
player
,
unsigned
char
gridX
,
unsigned
char
gridY
);
};
...
...
@@ -123,16 +131,5 @@ class RaceGameMode : public FreeForAllGameMode {
};
// Variable
EXTERN
GameMode
*
gameMode
;
// NULL for single-player games
// Function
GameMode
*
createGameMode
(
GameModeType
mode
);
#endif
src/game/servergame.cpp
View file @
28218a7d
...
...
@@ -36,7 +36,7 @@
#include <string.h>
ServerGame
::
ServerGame
(
GameModeType
mode
,
char
*
firstLevel
,
int
gameDifficulty
)
{
ServerGame
::
ServerGame
(
GameModeType
mode
Type
,
char
*
firstLevel
,
int
gameDifficulty
)
{
int
count
;
...
...
@@ -77,7 +77,7 @@ ServerGame::ServerGame (GameModeType mode, char* firstLevel, int gameDifficulty)
difficulty
=
gameDifficulty
;
gameMode
=
createGameMode
(
mod
e
);
mode
=
createMode
(
modeTyp
e
);
return
;
...
...
@@ -98,7 +98,7 @@ ServerGame::~ServerGame () {
if
(
levelData
)
delete
[]
levelData
;
delete
gameM
ode
;
delete
m
ode
;
return
;
...
...
@@ -253,7 +253,7 @@ int ServerGame::step (unsigned int ticks) {
// Set up the new player
recvBuffers
[
count
][
4
]
=
gameM
ode
->
chooseTeam
();
recvBuffers
[
count
][
4
]
=
m
ode
->
chooseTeam
();
players
[
nPlayers
].
init
((
char
*
)(
recvBuffers
[
count
])
+
9
,
recvBuffers
[
count
]
+
5
,
recvBuffers
[
count
][
4
]);
...
...
@@ -339,7 +339,7 @@ int ServerGame::step (unsigned int ticks) {
sendBuffer
[
0
]
=
MTL_G_PROPS
;
sendBuffer
[
1
]
=
MT_G_PROPS
;
sendBuffer
[
2
]
=
1
;
// Server version
sendBuffer
[
3
]
=
gameM
ode
->
getMode
();
sendBuffer
[
3
]
=
m
ode
->
getMode
();
sendBuffer
[
4
]
=
difficulty
;
sendBuffer
[
5
]
=
MAX_PLAYERS
;
sendBuffer
[
6
]
=
nPlayers
;
// Number of players
...
...
src/jj2level/jj2level.cpp
View file @
28218a7d
...
...
@@ -46,7 +46,7 @@
#include <string.h>
JJ2Level
::
JJ2Level
(
char
*
fileName
,
unsigned
char
diff
,
bool
checkpoint
)
{
JJ2Level
::
JJ2Level
(
char
*
fileName
,
unsigned
char
diff
,
bool
checkpoint
,
bool
multi
)
{
int
ret
;
...
...
@@ -56,6 +56,8 @@ JJ2Level::JJ2Level (char* fileName, unsigned char diff, bool checkpoint) {
if
(
ret
<
0
)
throw
ret
;
multiplayer
=
multi
;
return
;
}
...
...
@@ -150,7 +152,7 @@ void JJ2Level::setNext (char* fileName) {
delete
[]
nextLevel
;
nextLevel
=
createString
(
fileName
);
if
(
gameMode
)
{
if
(
multiplayer
)
{
buffer
[
0
]
=
MTL_L_PROP
;
buffer
[
1
]
=
MT_L_PROP
;
...
...
@@ -173,7 +175,7 @@ void JJ2Level::setFrame (unsigned char gridX, unsigned char gridY, unsigned char
layer
->
setFrame
(
gridX
,
gridY
,
frame
);
if
(
gameMode
)
{
if
(
multiplayer
)
{
buffer
[
0
]
=
MTL_L_GRID
;
buffer
[
1
]
=
MT_L_GRID
;
...
...
@@ -220,7 +222,7 @@ void JJ2Level::setWaterLevel (unsigned char gridY, bool instant) {
if
(
instant
)
waterLevel
=
waterLevelTarget
-
F8
;
if
(
gameMode
)
{
if
(
multiplayer
)
{
buffer
[
0
]
=
MTL_L_PROP
;
buffer
[
1
]
=
MT_L_PROP
;
...
...
src/jj2level/jj2level.h
View file @
28218a7d
...
...
@@ -129,7 +129,7 @@ class JJ2Level : public BaseLevel {
void
draw
();
public
:
JJ2Level
(
char
*
fileName
,
unsigned
char
diff
,
bool
checkpoint
);
JJ2Level
(
char
*
fileName
,
unsigned
char
diff
,
bool
checkpoint
,
bool
multi
);
~
JJ2Level
();
bool
checkMaskDown
(
fixed
x
,
fixed
y
,
bool
drop
);
...
...
src/jj2level/jj2levelframe.cpp
View file @
28218a7d
...
...
@@ -77,7 +77,7 @@ int JJ2Level::step () {
if
(
players
[
x
].
getJJ2LevelPlayer
()
->
reacted
(
ticks
)
==
JJ2PR_KILLED
)
{
if
(
!
gameMode
)
return
LOST
;
if
(
!
multiplayer
)
return
LOST
;
game
->
resetPlayer
(
players
+
x
);
...
...
@@ -143,7 +143,7 @@ void JJ2Level::draw () {
// Show "panel" data
// Show score
if
(
gameMode
)
gameMode
->
drawScore
(
font
);
if
(
multiplayer
)
game
->
getMode
()
->
drawScore
(
font
);
else
panelSmallFont
->
showNumber
(
localPlayer
->
getScore
(),
64
,
8
);
...
...
src/jj2level/jj2levelload.cpp
View file @
28218a7d
...
...
@@ -753,7 +753,7 @@ int JJ2Level::load (char *fileName, unsigned char diff, bool checkpoint) {
// Generate player's animation set references
if
(
gameMode
)
{
if
(
multiplayer
)
{
string
=
new
char
[
MTL_P_ANIMS
+
1
];
...
...
src/level/demolevel.cpp
View file @
28218a7d
...
...
@@ -45,7 +45,7 @@ DemoLevel::DemoLevel (const char* fileName) {
char
*
levelFile
;
int
lNum
,
wNum
,
diff
,
ret
;
gameMode
=
NULL
;
multiplayer
=
false
;
try
{
...
...
src/level/event/eventframe.cpp
View file @
28218a7d
...
...
@@ -1057,10 +1057,12 @@ void Event::drawEnergy (unsigned int ticks) {
// Get the event properties
set
=
level
->
getEvent
(
gridX
,
gridY
);
if
(
set
[
E_MODIFIER
]
!=
8
)
{
if
(
!
set
||
set
[
E_MODIFIER
]
!=
8
)
{
if
(
next
)
next
->
drawEnergy
(
ticks
);
return
;
}
else
if
(
set
[
E_HITSTOKILL
])
{
// Draw boss energy bar
...
...
src/level/level.cpp
View file @
28218a7d
...
...
@@ -67,7 +67,7 @@ Level::Level () {
}
Level
::
Level
(
char
*
fileName
,
unsigned
char
diff
,
bool
checkpoint
)
{
Level
::
Level
(
char
*
fileName
,
unsigned
char
diff
,
bool
checkpoint
,
bool
multi
)
{
int
ret
;
...
...
@@ -77,6 +77,8 @@ Level::Level (char* fileName, unsigned char diff, bool checkpoint) {
if
(
ret
<
0
)
throw
ret
;
multiplayer
=
multi
;
return
;
}
...
...
@@ -193,7 +195,7 @@ void Level::setNext (int nextLevel, int nextWorld) {
nextLevelNum
=
nextLevel
;
nextWorldNum
=
nextWorld
;
if
(
gameMode
)
{
if
(
multiplayer
)
{
buffer
[
0
]
=
MTL_L_PROP
;
buffer
[
1
]
=
MT_L_PROP
;
...
...
@@ -216,7 +218,7 @@ void Level::setTile (unsigned char gridX, unsigned char gridY, unsigned char til
grid
[
gridY
][
gridX
].
tile
=
tile
;
if
(
gameMode
)
{
if
(
multiplayer
)
{
buffer
[
0
]
=
MTL_L_GRID
;
buffer
[
1
]
=
MT_L_GRID
;
...
...
@@ -276,7 +278,7 @@ void Level::clearEvent (unsigned char gridX, unsigned char gridY) {
grid
[
gridY
][
gridX
].
event
=
0
;
if
(
gameMode
)
{
if
(
multiplayer
)
{
buffer
[
0
]
=
MTL_L_GRID
;
buffer
[
1
]
=
MT_L_GRID
;
...
...
@@ -325,7 +327,7 @@ int Level::hitEvent (unsigned char gridX, unsigned char gridY, LevelPlayer* sour
}
if
(
gameMode
)
{
if
(
multiplayer
)
{
buffer
[
0
]
=
MTL_L_GRID
;
buffer
[
1
]
=
MT_L_GRID
;
...
...
@@ -387,7 +389,7 @@ void Level::setWaterLevel (unsigned char gridY) {
waterLevelTarget
=
TTOF
(
gridY
);
if
(
gameMode
)
{
if
(
multiplayer
)
{
buffer
[
0
]
=
MTL_L_PROP
;
buffer
[
1
]
=
MT_L_PROP
;
...
...
@@ -444,7 +446,7 @@ int Level::playBonus () {
try
{
baseLevel
=
bonus
=
new
Bonus
(
bonusFile
,
difficulty
);
baseLevel
=
bonus
=
new
Bonus
(
bonusFile
,
difficulty
,
multiplayer
);
}
catch
(
int
e
)
{
...
...
@@ -556,7 +558,7 @@ int Level::play () {
// Check if level has been won
if
(
game
&&
returnTime
&&
(
ticks
>
returnTime
))
{
if
(
!
gameMode
)
{
if
(
!
multiplayer
)
{
// If the gem has been collected, play the bonus level
if
(
playBonus
()
==
E_QUIT
)
return
E_QUIT
;
...
...
src/level/level.h
View file @
28218a7d
...
...
@@ -138,7 +138,7 @@ class Level : public BaseLevel {
EventPath
path
[
PATHS
];
Level
();
Level
(
char
*
fileName
,
unsigned
char
diff
,
bool
checkpoint
);
Level
(
char
*
fileName
,
unsigned
char
diff
,
bool
checkpoint
,
bool
multi
);
virtual
~
Level
();
bool
checkMaskUp
(
fixed
x
,
fixed
y
);
...
...
src/level/levelframe.cpp
View file @
28218a7d
...
...
@@ -138,12 +138,16 @@ int Level::step () {
// Check if time has run out
if
(
ticks
>
endTime
)
{
if
(
!
gameMode
)
{
if
(
multiplayer
)
{
game
->
getMode
()
->
outOfTime
();
}
else
{
if
((
difficulty
>=
2
)
&&
(
stage
==
LS_NORMAL
))
localPlayer
->
getLevelPlayer
()
->
kill
(
NULL
,
endTime
);
}
else
gameMode
->
outOfTime
();
}
}
...
...
@@ -161,7 +165,7 @@ int Level::step () {
if
(
players
[
x
].
getLevelPlayer
()
->
reacted
(
ticks
)
==
PR_KILLED
)
{
if
(
!
gameMode
)
return
LOST
;
if
(
!
multiplayer
)
return
LOST
;
game
->
resetPlayer
(
players
+
x
);
...
...
@@ -335,7 +339,7 @@ void Level::draw () {
// If this is a competitive game, draw the score
if
(
gameMode
)
gameMode
->
drawScore
(
font
);
if
(
multiplayer
)
game
->
getMode
()
->
drawScore
(
font
);
// Show panel
...
...
src/level/levelload.cpp
View file @
28218a7d
...
...
@@ -886,7 +886,7 @@ int Level::load (char* fileName, unsigned char diff, bool checkpoint) {
delete
[]
buffer
;
if
(
gameMode
)
{
if
(
multiplayer
)
{
string
[
0
]
=
MTL_P_ANIMS
+
PANIMS
;
string
[
1
]
=
MT_P_ANIMS
;
...
...
src/player/jj2levelplayer.cpp
View file @
28218a7d
...
...
@@ -217,7 +217,7 @@ bool JJ2LevelPlayer::hit (Player *source, unsigned int ticks) {
if
(
source
&&
(
source
->
getTeam
()
==
player
->
team
))
return
false
;
if
(
!
gameMode
||
gameMode
->
hit
(
source
,
player
))
{
if
(
game
->
getMode
()
->
hit
(
source
,
player
))
{
energy
--
;
...
...
@@ -259,7 +259,7 @@ void JJ2LevelPlayer::kill (Player *source, unsigned int ticks) {
if
(
reaction
!=
JJ2PR_NONE
)
return
;
if
(
!
gameMode
||
gameMode
->
kill
(
source
,
player
))
{
if
(
game
->
getMode
()
->
kill
(
source
,
player
))
{
energy
=
0
;
player
->
lives
--
;
...
...
src/player/jj2levelplayerframe.cpp
View file @
28218a7d
...
...
@@ -121,13 +121,7 @@ void JJ2LevelPlayer::modify (JJ2Modifier* nextMod, unsigned int ticks) {
if
(
!
energy
)
return
;
if
(
!
gameMode
)
{
if
(
game
)
game
->
setCheckpoint
(
FTOT
(
x
+
PXO_MID
),
FTOT
(
y
+
PYO_MID
));
jj2Level
->
setStage
(
LS_END
);
}
else
if
(
!
(
gameMode
->
endOfLevel
(
player
,
FTOT
(
x
+
PXO_MID
),
FTOT
(
y
+
PYO_MID
))))
return
;
if
(
!
game
->
getMode
()
->
endOfLevel
(
player
,
FTOT
(
x
+
PXO_MID
),
FTOT
(
y
+
PYO_MID
)))
return
;
break
;
...
...
@@ -897,7 +891,7 @@ void JJ2LevelPlayer::draw (unsigned int ticks, int change) {
// Show the player's name
if
(
gameMode
)
if
(
nPlayers
>
1
)
panelBigFont
->
showString
(
player
->
name
,
FTOI
(
drawX
+
PXO_MID
)
-
(
panelBigFont
->
getStringWidth
(
player
->
name
)
>>
1
),
FTOI
(
drawY
-
F32
-
F16
));
...
...
src/player/levelplayer.cpp
View file @
28218a7d
...
...
@@ -224,7 +224,7 @@ bool LevelPlayer::hit (Player *source, unsigned int ticks) {
if
(
shield
==
3
)
shield
=
0
;
else
if
(
shield
)
shield
--
;
else
if
(
!
gameMode
||
gameMode
->
hit
(
source
,
player
))
{
else
if
(
game
->
getMode
()
->
hit
(
source
,
player
))
{
energy
--
;
...
...
@@ -266,7 +266,7 @@ void LevelPlayer::kill (Player *source, unsigned int ticks) {
if
(
reaction
!=
PR_NONE
)
return
;
if
(
!
gameMode
||
gameMode
->
kill
(
source
,
player
))
{
if
(
game
->
getMode
()
->
kill
(
source
,
player
))
{
energy
=
0
;
player
->
lives
--
;
...
...
@@ -274,9 +274,9 @@ void LevelPlayer::kill (Player *source, unsigned int ticks) {
reaction
=
PR_KILLED
;
reactionTime
=
ticks
+
PRT_KILLED
;
}
if
(
game
->
getMode
()
->
getMode
()
==
M_SINGLE
)
level
->
flash
(
0
,
0
,
0
,
T_END
<<
1
);
if
(
!
gameMode
)
level
->
flash
(
0
,
0
,
0
,
T_END
<<
1
);
}
return
;
...
...
@@ -372,13 +372,7 @@ bool LevelPlayer::takeEvent (unsigned char gridX, unsigned char gridY, unsigned
if
(
!
energy
)
return
false
;
if
(
!
gameMode
)
{
if
(
game
)
game
->
setCheckpoint
(
gridX
,
gridY
);
level
->
setStage
(
LS_END
);
}
else
if
(
!
(
gameMode
->
endOfLevel
(
player
,
gridX
,
gridY
)))
return
false
;
if
(
!
game
->
getMode
()
->
endOfLevel
(
player
,
gridX
,
gridY
))
return
false
;
break
;
...
...
src/player/levelplayerframe.cpp
View file @
28218a7d
...
...
@@ -791,7 +791,7 @@ void LevelPlayer::draw (unsigned int ticks, int change) {
// Show the player's name
if
(
gameMode
)
if
(
nPlayers
>
1
)
panelBigFont
->
showString
(
player
->
name
,
FTOI
(
drawX
+
PXO_MID
)
-
(
panelBigFont
->
getStringWidth
(
player
->
name
)
>>
1
),
FTOI
(
drawY
-
F32
-
F16
));
...
...
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