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
ac000e21
Commit
ac000e21
authored
Apr 30, 2010
by
alistert
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Palette effects are now interface-specific rather than global. Added planet approach sequences.
parent
6aad385b
Changes
41
Hide whitespace changes
Inline
Side-by-side
Showing
41 changed files
with
582 additions
and
288 deletions
+582
-288
Makefile
Makefile
+2
-1
Makefile.arm
Makefile.arm
+2
-1
Makefile.debian
Makefile.debian
+2
-1
OpenJazz.h
src/OpenJazz.h
+9
-41
baselevel.cpp
src/baselevel.cpp
+3
-7
baselevel.h
src/baselevel.h
+12
-11
bonus.cpp
src/bonus/bonus.cpp
+5
-11
clientgame.cpp
src/game/clientgame.cpp
+3
-9
game.cpp
src/game/game.cpp
+45
-8
servergame.cpp
src/game/servergame.cpp
+1
-0
controls.cpp
src/io/controls.cpp
+4
-2
file.cpp
src/io/file.cpp
+6
-4
file.h
src/io/file.h
+1
-1
paletteeffects.h
src/io/gfx/paletteeffects.h
+10
-19
sprite.cpp
src/io/gfx/sprite.cpp
+15
-13
sprite.h
src/io/gfx/sprite.h
+3
-1
video.cpp
src/io/gfx/video.cpp
+1
-1
video.h
src/io/gfx/video.h
+2
-2
network.cpp
src/io/network.cpp
+3
-0
sound.cpp
src/io/sound.cpp
+24
-19
bullet.cpp
src/level/bullet.cpp
+1
-1
demolevel.cpp
src/level/demolevel.cpp
+4
-2
eventframe.cpp
src/level/event/eventframe.cpp
+1
-0
level.cpp
src/level/level.cpp
+17
-11
level.h
src/level/level.h
+4
-2
levelframe.cpp
src/level/levelframe.cpp
+2
-1
levelload.cpp
src/level/levelload.cpp
+3
-3
loop.h
src/loop.h
+44
-0
main.cpp
src/main.cpp
+89
-90
gamemenu.cpp
src/menu/gamemenu.cpp
+2
-0
mainmenu.cpp
src/menu/mainmenu.cpp
+1
-0
menuutil.cpp
src/menu/menuutil.cpp
+2
-0
setupmenu.cpp
src/menu/setupmenu.cpp
+1
-0
planet.cpp
src/planet/planet.cpp
+150
-0
planet.h
src/planet/planet.h
+16
-4
player.cpp
src/player/player.cpp
+4
-3
playerframe.cpp
src/player/playerframe.cpp
+2
-1
scene.cpp
src/scene/scene.cpp
+30
-8
sceneload.cpp
src/scene/sceneload.cpp
+1
-10
util.cpp
src/util.cpp
+2
-0
util.h
src/util.h
+53
-0
No files found.
Makefile
View file @
ac000e21
...
@@ -12,9 +12,10 @@ objects = src/bonus/bonus.o \
...
@@ -12,9 +12,10 @@ objects = src/bonus/bonus.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/menuutil.o src/menu/setupmenu.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/baselevel.o src/main.o src/movable.o src/
planet.o src/
util.o
\
src/baselevel.o src/main.o src/movable.o src/util.o
\
src/io/gfx/scale2x/getopt.o src/io/gfx/scale2x/pixel.o
\
src/io/gfx/scale2x/getopt.o src/io/gfx/scale2x/pixel.o
\
src/io/gfx/scale2x/scale2x.o
src/io/gfx/scale2x/scale3x.o
\
src/io/gfx/scale2x/scale2x.o
src/io/gfx/scale2x/scale3x.o
\
src/io/gfx/scale2x/scalebit.o
src/io/gfx/scale2x/simple2x.o
src/io/gfx/scale2x/scalebit.o
src/io/gfx/scale2x/simple2x.o
...
...
Makefile.arm
View file @
ac000e21
...
@@ -36,9 +36,10 @@ OBJS = src/bonus/bonus.o \
...
@@ -36,9 +36,10 @@ OBJS = src/bonus/bonus.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/menuutil.o src/menu/setupmenu.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/baselevel.o src/main.o src/movable.o src/
planet.o src/
util.o
\
src/baselevel.o src/main.o src/movable.o src/util.o
\
src/io/gfx/scale2x/getopt.o src/io/gfx/scale2x/pixel.o
\
src/io/gfx/scale2x/getopt.o src/io/gfx/scale2x/pixel.o
\
src/io/gfx/scale2x/scale2x.o src/io/gfx/scale2x/scale3x.o
\
src/io/gfx/scale2x/scale2x.o src/io/gfx/scale2x/scale3x.o
\
src/io/gfx/scale2x/scalebit.o src/io/gfx/scale2x/simple2x.o
src/io/gfx/scale2x/scalebit.o src/io/gfx/scale2x/simple2x.o
...
...
Makefile.debian
View file @
ac000e21
...
@@ -12,9 +12,10 @@ objects = src/bonus/bonus.o \
...
@@ -12,9 +12,10 @@ objects = src/bonus/bonus.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/menuutil.o src/menu/setupmenu.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/baselevel.o src/main.o src/movable.o src/
planet.o src/
util.o
\
src/baselevel.o src/main.o src/movable.o src/util.o
\
src/io/gfx/scale2x/getopt.o src/io/gfx/scale2x/pixel.o
\
src/io/gfx/scale2x/getopt.o src/io/gfx/scale2x/pixel.o
\
src/io/gfx/scale2x/scale2x.o src/io/gfx/scale2x/scale3x.o
\
src/io/gfx/scale2x/scale2x.o src/io/gfx/scale2x/scale3x.o
\
src/io/gfx/scale2x/scalebit.o src/io/gfx/scale2x/simple2x.o
src/io/gfx/scale2x/scalebit.o src/io/gfx/scale2x/simple2x.o
...
...
src/OpenJazz.h
View file @
ac000e21
...
@@ -14,7 +14,9 @@
...
@@ -14,7 +14,9 @@
* 2nd June 2009: Created sound.h from parts of OpenJazz.h
* 2nd June 2009: Created sound.h from parts of OpenJazz.h
* 3rd June 2009: Created network.h from parts of OpenJazz.h
* 3rd June 2009: Created network.h from parts of OpenJazz.h
* 13th July 2009: Created controls.h from parts of OpenJazz.h
* 13th July 2009: Created controls.h from parts of OpenJazz.h
* 13th July 2009: Created graphics.h from parts of OpenJazz.h
* 13th July 2009: Created graphics.h from parts of OpenJazz.h
* 30th April 2010: Created util.h from parts of OpenJazz.h
* 30th April 2010: Created loop.h from parts of OpenJazz.h
*
*
* Part of the OpenJazz project
* Part of the OpenJazz project
*
*
...
@@ -142,15 +144,12 @@
...
@@ -142,15 +144,12 @@
#define MUL(x, y) (((x) * (y)) >> 10)
#define MUL(x, y) (((x) * (y)) >> 10)
#define DIV(x, y) (((x) << 10) / (y))
#define DIV(x, y) (((x) << 10) / (y))
#ifdef VERBOSE
// Enum
#define LOG(x, y) log(x, y)
#else
enum
LoopType
{
#define LOG(x, y)
#endif
NORMAL_LOOP
,
TYPING_LOOP
,
SET_KEY_LOOP
,
SET_JOYSTICK_LOOP
};
// Datatype
// Datatype
...
@@ -159,39 +158,8 @@ typedef int fixed;
...
@@ -159,39 +158,8 @@ typedef int fixed;
// Variable
// Variable
// Time
EXTERN
unsigned
int
globalTicks
;
EXTERN
unsigned
int
globalTicks
;
// Trigonometric function look-up tables
EXTERN
fixed
sinLut
[
1024
];
// Functions in main.cpp
EXTERN
int
loop
(
LoopType
type
);
// Functions in util.cpp
EXTERN
bool
fileExists
(
const
char
*
fileName
);
EXTERN
char
*
createString
(
const
char
*
string
);
EXTERN
char
*
createString
(
const
char
*
first
,
const
char
*
second
);
EXTERN
char
*
createFileName
(
const
char
*
type
,
int
extension
);
EXTERN
char
*
createFileName
(
const
char
*
type
,
const
char
*
extension
);
EXTERN
char
*
createFileName
(
const
char
*
type
,
int
level
,
int
extension
);
EXTERN
char
*
createEditableString
(
const
char
*
string
);
EXTERN
void
log
(
const
char
*
message
);
EXTERN
void
log
(
const
char
*
message
,
const
char
*
detail
);
EXTERN
void
log
(
const
char
*
message
,
int
number
);
EXTERN
void
logError
(
const
char
*
message
,
const
char
*
detail
);
EXTERN
fixed
fSin
(
fixed
angle
);
EXTERN
fixed
fCos
(
fixed
angle
);
#ifdef VERBOSE
#define LOG(x, y) log(x, y)
#else
#define LOG(x, y)
#endif
#endif
#endif
src/baselevel.cpp
View file @
ac000e21
...
@@ -42,6 +42,8 @@ BaseLevel::BaseLevel () {
...
@@ -42,6 +42,8 @@ BaseLevel::BaseLevel () {
// Arbitrary initial value
// Arbitrary initial value
smoothfps
=
50.0
f
;
smoothfps
=
50.0
f
;
paletteEffects
=
NULL
;
paused
=
false
;
paused
=
false
;
// Set the level stage
// Set the level stage
...
@@ -56,13 +58,7 @@ BaseLevel::~BaseLevel () {
...
@@ -56,13 +58,7 @@ BaseLevel::~BaseLevel () {
stopMusic
();
stopMusic
();
// Free the palette effects
if
(
paletteEffects
)
delete
paletteEffects
;
if
(
paletteEffects
)
{
delete
paletteEffects
;
paletteEffects
=
NULL
;
}
SDL_FreeSurface
(
tileSet
);
SDL_FreeSurface
(
tileSet
);
...
...
src/baselevel.h
View file @
ac000e21
...
@@ -24,7 +24,7 @@
...
@@ -24,7 +24,7 @@
#define _BASELEVEL_H
#define _BASELEVEL_H
#include "
OpenJazz
.h"
#include "
io/gfx/paletteeffects
.h"
#include <SDL/SDL.h>
#include <SDL/SDL.h>
...
@@ -61,16 +61,17 @@ class Sprite;
...
@@ -61,16 +61,17 @@ class Sprite;
class
BaseLevel
{
class
BaseLevel
{
protected
:
protected
:
SDL_Surface
*
tileSet
;
SDL_Surface
*
tileSet
;
Sprite
*
spriteSet
;
Sprite
*
spriteSet
;
SDL_Color
palette
[
256
];
PaletteEffect
*
paletteEffects
;
int
sprites
;
SDL_Color
palette
[
256
];
unsigned
int
tickOffset
,
prevStepTicks
,
prevTicks
,
ticks
;
int
sprites
;
unsigned
int
endTime
;
unsigned
int
tickOffset
,
prevStepTicks
,
prevTicks
,
ticks
;
float
smoothfps
;
unsigned
int
endTime
;
int
items
;
float
smoothfps
;
bool
paused
;
int
items
;
LevelStage
stage
;
bool
paused
;
LevelStage
stage
;
int
playScene
(
char
*
file
);
int
playScene
(
char
*
file
);
void
timeCalcs
();
void
timeCalcs
();
...
...
src/bonus/bonus.cpp
View file @
ac000e21
...
@@ -38,6 +38,8 @@
...
@@ -38,6 +38,8 @@
#include "io/sound.h"
#include "io/sound.h"
#include "menu/menu.h"
#include "menu/menu.h"
#include "player/player.h"
#include "player/player.h"
#include "loop.h"
#include "util.h"
#include <string.h>
#include <string.h>
...
@@ -598,8 +600,8 @@ void Bonus::draw () {
...
@@ -598,8 +600,8 @@ void Bonus::draw () {
if
(
sprite
)
{
if
(
sprite
)
{
nX
=
DIV
(
MUL
(
sX
,
playerCos
)
+
MUL
(
sY
,
playerSin
),
divisor
);
nX
=
DIV
(
MUL
(
sX
,
playerCos
)
+
MUL
(
sY
,
playerSin
),
divisor
);
dst
.
x
=
FTOI
(
nX
*
canvasW
)
+
(
(
canvasW
-
(
ITOF
(
sprite
->
getWidth
()
<<
5
)
/
divisor
))
>>
1
);
dst
.
x
=
FTOI
(
nX
*
canvasW
)
+
(
canvasW
>>
1
);
dst
.
y
=
(
canvasH
-
(
ITOF
(
sprite
->
getHeight
()
<<
5
)
/
divisor
))
>>
1
;
dst
.
y
=
canvasH
>>
1
;
sprite
->
drawScaled
(
dst
.
x
,
dst
.
y
,
DIV
(
F32
,
divisor
));
sprite
->
drawScaled
(
dst
.
x
,
dst
.
y
,
DIV
(
F32
,
divisor
));
}
}
...
@@ -642,7 +644,6 @@ void Bonus::draw () {
...
@@ -642,7 +644,6 @@ void Bonus::draw () {
int
Bonus
::
play
()
{
int
Bonus
::
play
()
{
const
char
*
options
[
3
]
=
{
"continue game"
,
"setup options"
,
"quit game"
};
const
char
*
options
[
3
]
=
{
"continue game"
,
"setup options"
,
"quit game"
};
PaletteEffect
*
levelPE
;
bool
pmenu
,
pmessage
;
bool
pmenu
,
pmessage
;
int
stats
,
option
;
int
stats
,
option
;
unsigned
int
returnTime
;
unsigned
int
returnTime
;
...
@@ -663,7 +664,7 @@ int Bonus::play () {
...
@@ -663,7 +664,7 @@ int Bonus::play () {
while
(
true
)
{
while
(
true
)
{
if
(
loop
(
NORMAL_LOOP
)
==
E_QUIT
)
return
E_QUIT
;
if
(
loop
(
NORMAL_LOOP
,
paletteEffects
)
==
E_QUIT
)
return
E_QUIT
;
if
(
controls
.
release
(
C_ESCAPE
))
{
if
(
controls
.
release
(
C_ESCAPE
))
{
...
@@ -703,18 +704,11 @@ int Bonus::play () {
...
@@ -703,18 +704,11 @@ int Bonus::play () {
if
(
!
gameMode
)
{
if
(
!
gameMode
)
{
// Don't want palette effects in setup menu
levelPE
=
paletteEffects
;
paletteEffects
=
NULL
;
if
(
menu
->
setup
()
==
E_QUIT
)
return
E_QUIT
;
if
(
menu
->
setup
()
==
E_QUIT
)
return
E_QUIT
;
// Restore level palette
// Restore level palette
video
.
setPalette
(
palette
);
video
.
setPalette
(
palette
);
// Restore palette effects
paletteEffects
=
levelPE
;
}
}
break
;
break
;
...
...
src/game/clientgame.cpp
View file @
ac000e21
...
@@ -31,7 +31,9 @@
...
@@ -31,7 +31,9 @@
#include "io/network.h"
#include "io/network.h"
#include "level/level.h"
#include "level/level.h"
#include "menu/menu.h"
#include "menu/menu.h"
#include "player/player.h"
#include "player/player.h"
#include "loop.h"
#include "util.h"
#include <string.h>
#include <string.h>
...
@@ -246,14 +248,6 @@ int ClientGame::setLevel (char* fileName) {
...
@@ -246,14 +248,6 @@ int ClientGame::setLevel (char* fileName) {
int
ret
;
int
ret
;
// Free the palette effects
if
(
paletteEffects
)
{
delete
paletteEffects
;
paletteEffects
=
NULL
;
}
video
.
setPalette
(
menu
->
palettes
[
1
]);
video
.
setPalette
(
menu
->
palettes
[
1
]);
// Wait for level data to start arriving
// Wait for level data to start arriving
...
...
src/game/game.cpp
View file @
ac000e21
...
@@ -31,8 +31,10 @@
...
@@ -31,8 +31,10 @@
#include "io/gfx/font.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 "level/level.h"
#include "level/level.h"
#include "planet/planet.h"
#include "player/player.h"
#include "player/player.h"
#include "util.h"
#include <string.h>
#include <string.h>
...
@@ -91,13 +93,16 @@ int Game::setLevel (char *fileName) {
...
@@ -91,13 +93,16 @@ int Game::setLevel (char *fileName) {
int
Game
::
play
()
{
int
Game
::
play
()
{
Planet
*
planet
;
Bonus
*
bonus
;
Bonus
*
bonus
;
char
*
bonusFil
e
;
char
*
fileNam
e
;
bool
checkpoint
;
bool
checkpoint
;
int
ret
;
int
ret
;
int
planetId
;
checkpoint
=
false
;
checkpoint
=
false
;
planetId
=
-
1
;
// Play the level(s)
// Play the level(s)
while
(
true
)
{
while
(
true
)
{
...
@@ -134,9 +139,9 @@ int Game::play () {
...
@@ -134,9 +139,9 @@ int Game::play () {
}
else
if
(
ret
==
WON
)
{
}
else
if
(
ret
==
WON
)
{
// Go to next level
// Go to next level
bonusFil
e
=
createFileName
(
F_BONUSMAP
,
(
levelFile
[
10
]
*
10
)
+
levelFile
[
11
]
-
527
);
fileNam
e
=
createFileName
(
F_BONUSMAP
,
(
levelFile
[
10
]
*
10
)
+
levelFile
[
11
]
-
527
);
setLevel
(
bonusFil
e
);
setLevel
(
fileNam
e
);
delete
[]
bonusFil
e
;
delete
[]
fileNam
e
;
}
}
...
@@ -154,6 +159,38 @@ int Game::play () {
...
@@ -154,6 +159,38 @@ int Game::play () {
}
}
planet
=
NULL
;
fileName
=
createFileName
(
F_PLANET
,
levelFile
+
strlen
(
levelFile
)
-
3
);
try
{
planet
=
new
Planet
(
fileName
,
planetId
);
}
catch
(
int
e
)
{
// Do nothing
}
delete
[]
fileName
;
if
(
planet
)
{
if
(
planet
->
play
()
==
E_QUIT
)
{
delete
planet
;
delete
level
;
return
E_QUIT
;
}
planetId
=
planet
->
getId
();
delete
planet
;
}
ret
=
level
->
play
();
ret
=
level
->
play
();
if
(
ret
<=
0
)
{
if
(
ret
<=
0
)
{
...
...
src/game/servergame.cpp
View file @
ac000e21
...
@@ -31,6 +31,7 @@
...
@@ -31,6 +31,7 @@
#include "io/network.h"
#include "io/network.h"
#include "level/level.h"
#include "level/level.h"
#include "player/player.h"
#include "player/player.h"
#include "util.h"
#include <string.h>
#include <string.h>
...
...
src/io/controls.cpp
View file @
ac000e21
...
@@ -26,10 +26,12 @@
...
@@ -26,10 +26,12 @@
#include "controls.h"
#include "controls.h"
#include "loop.h"
#if defined(WIZ) || defined(GP2X)
#if defined(WIZ) || defined(GP2X)
#include "platforms/wiz.h"
#include "platforms/wiz.h"
#endif
#endif
Controls
::
Controls
()
{
Controls
::
Controls
()
{
...
@@ -79,7 +81,7 @@ Controls::Controls () {
...
@@ -79,7 +81,7 @@ Controls::Controls () {
buttons
[
C_STATS
].
button
=
-
1
;
buttons
[
C_STATS
].
button
=
-
1
;
buttons
[
C_PAUSE
].
button
=
-
1
;
buttons
[
C_PAUSE
].
button
=
-
1
;
buttons
[
C_YES
].
button
=
-
1
;
buttons
[
C_YES
].
button
=
-
1
;
buttons
[
C_NO
].
button
=
-
1
;
buttons
[
C_NO
].
button
=
-
1
;
#endif
#endif
buttons
[
C_SWIM
].
button
=
buttons
[
C_JUMP
].
button
;
buttons
[
C_SWIM
].
button
=
buttons
[
C_JUMP
].
button
;
...
@@ -288,7 +290,7 @@ bool Controls::getState (int control) {
...
@@ -288,7 +290,7 @@ bool Controls::getState (int control) {
bool
Controls
::
release
(
int
control
)
{
bool
Controls
::
release
(
int
control
)
{
if
(
!
controls
[
control
].
state
)
return
false
;
if
(
!
controls
[
control
].
state
)
return
false
;
controls
[
control
].
time
=
globalTicks
+
T_KEY
;
controls
[
control
].
time
=
globalTicks
+
T_KEY
;
...
...
src/io/file.cpp
View file @
ac000e21
...
@@ -23,6 +23,7 @@
...
@@ -23,6 +23,7 @@
#include "file.h"
#include "file.h"
#include "io/gfx/video.h"
#include "io/gfx/video.h"
#include "util.h"
#include <string.h>
#include <string.h>
...
@@ -74,7 +75,7 @@ bool File::open (const char* path, const char* name, bool write) {
...
@@ -74,7 +75,7 @@ bool File::open (const char* path, const char* name, bool write) {
filePath
=
createString
(
path
,
name
);
filePath
=
createString
(
path
,
name
);
#ifdef UPPERCASE_FILENAMES
#ifdef UPPERCASE_FILENAMES
for
(
count
=
strlen
(
path
);
count
<
strlen
(
filePath
)
;
count
++
)
{
for
(
count
=
strlen
(
path
);
filePath
[
count
]
;
count
++
)
{
if
((
filePath
[
count
]
>=
97
)
&&
(
filePath
[
count
]
<=
122
))
filePath
[
count
]
-=
32
;
if
((
filePath
[
count
]
>=
97
)
&&
(
filePath
[
count
]
<=
122
))
filePath
[
count
]
-=
32
;
...
@@ -82,7 +83,7 @@ bool File::open (const char* path, const char* name, bool write) {
...
@@ -82,7 +83,7 @@ bool File::open (const char* path, const char* name, bool write) {
#endif
#endif
#ifdef LOWERCASE_FILENAMES
#ifdef LOWERCASE_FILENAMES
for
(
count
=
strlen
(
path
);
count
<
strlen
(
filePath
)
;
count
++
)
{
for
(
count
=
strlen
(
path
);
filePath
[
count
]
;
count
++
)
{
if
((
filePath
[
count
]
>=
65
)
&&
(
filePath
[
count
]
<=
90
))
filePath
[
count
]
+=
32
;
if
((
filePath
[
count
]
>=
65
)
&&
(
filePath
[
count
]
<=
90
))
filePath
[
count
]
+=
32
;
...
@@ -428,12 +429,13 @@ unsigned char* File::loadPixels (int length, int key) {
...
@@ -428,12 +429,13 @@ unsigned char* File::loadPixels (int length, int key) {
}
}
void
File
::
loadPalette
(
SDL_Color
*
palette
)
{
void
File
::
loadPalette
(
SDL_Color
*
palette
,
bool
rle
)
{
unsigned
char
*
buffer
;
unsigned
char
*
buffer
;
int
count
;
int
count
;
buffer
=
loadRLE
(
768
);
if
(
rle
)
buffer
=
loadRLE
(
768
);
else
buffer
=
loadBlock
(
768
);
for
(
count
=
0
;
count
<
256
;
count
++
)
{
for
(
count
=
0
;
count
<
256
;
count
++
)
{
...
...
src/io/file.h
View file @
ac000e21
...
@@ -60,7 +60,7 @@ class File {
...
@@ -60,7 +60,7 @@ class File {
SDL_Surface
*
loadSurface
(
int
width
,
int
height
);
SDL_Surface
*
loadSurface
(
int
width
,
int
height
);
unsigned
char
*
loadPixels
(
int
length
);
unsigned
char
*
loadPixels
(
int
length
);
unsigned
char
*
loadPixels
(
int
length
,
int
key
);
unsigned
char
*
loadPixels
(
int
length
,
int
key
);
void
loadPalette
(
SDL_Color
*
palette
);
void
loadPalette
(
SDL_Color
*
palette
,
bool
rle
=
true
);
};
};
...
...
src/io/gfx/paletteeffects.h
View file @
ac000e21
...
@@ -124,8 +124,7 @@ class FlashPaletteEffect : public PaletteEffect {
...
@@ -124,8 +124,7 @@ class FlashPaletteEffect : public PaletteEffect {
unsigned
char
red
,
green
,
blue
;
// Flash colour
unsigned
char
red
,
green
,
blue
;
// Flash colour
public
:
public
:
FlashPaletteEffect
(
unsigned
char
newRed
,
unsigned
char
newGreen
,
FlashPaletteEffect
(
unsigned
char
newRed
,
unsigned
char
newGreen
,
unsigned
char
newBlue
,
int
newDuration
,
PaletteEffect
*
nextPE
);
unsigned
char
newBlue
,
int
newDuration
,
PaletteEffect
*
nextPE
);
void
apply
(
SDL_Color
*
shownPalette
,
bool
direct
,
int
mspf
);
void
apply
(
SDL_Color
*
shownPalette
,
bool
direct
,
int
mspf
);
...
@@ -141,8 +140,7 @@ class RotatePaletteEffect : public PaletteEffect {
...
@@ -141,8 +140,7 @@ class RotatePaletteEffect : public PaletteEffect {
fixed
position
;
fixed
position
;
public
:
public
:
RotatePaletteEffect
(
unsigned
char
newFirst
,
int
newAmount
,
RotatePaletteEffect
(
unsigned
char
newFirst
,
int
newAmount
,
fixed
newSpeed
,
PaletteEffect
*
nextPE
);
fixed
newSpeed
,
PaletteEffect
*
nextPE
);
void
apply
(
SDL_Color
*
shownPalette
,
bool
direct
,
int
mspf
);
void
apply
(
SDL_Color
*
shownPalette
,
bool
direct
,
int
mspf
);
...
@@ -152,14 +150,13 @@ class RotatePaletteEffect : public PaletteEffect {
...
@@ -152,14 +150,13 @@ class RotatePaletteEffect : public PaletteEffect {
class
SkyPaletteEffect
:
public
PaletteEffect
{
class
SkyPaletteEffect
:
public
PaletteEffect
{
private
:
private
:
SDL_Color
*
skyPalette
;
SDL_Color
*
skyPalette
;
unsigned
char
first
;
/* The first palette index affected */
unsigned
char
first
;
/* The first palette index affected */
int
amount
;
/* The number of (consecutive) palette indices affected */
int
amount
;
/* The number of (consecutive) palette indices affected */
fixed
speed
;
// Relative Y speed - as in Jazz 2
fixed
speed
;
// Relative Y speed - as in Jazz 2
public
:
public
:
SkyPaletteEffect
(
unsigned
char
newFirst
,
int
newAmount
,
SkyPaletteEffect
(
unsigned
char
newFirst
,
int
newAmount
,
fixed
newSpeed
,
SDL_Color
*
newSkyPalette
,
PaletteEffect
*
nextPE
);
fixed
newSpeed
,
SDL_Color
*
newSkyPalette
,
PaletteEffect
*
nextPE
);
void
apply
(
SDL_Color
*
shownPalette
,
bool
direct
,
int
mspf
);
void
apply
(
SDL_Color
*
shownPalette
,
bool
direct
,
int
mspf
);
...
@@ -174,8 +171,7 @@ class P2DPaletteEffect : public PaletteEffect {
...
@@ -174,8 +171,7 @@ class P2DPaletteEffect : public PaletteEffect {
fixed
speed
;
// Relative X & Y speed - as in Jazz 2
fixed
speed
;
// Relative X & Y speed - as in Jazz 2
public
:
public
:
P2DPaletteEffect
(
unsigned
char
newFirst
,
int
newAmount
,
P2DPaletteEffect
(
unsigned
char
newFirst
,
int
newAmount
,
fixed
newSpeed
,
PaletteEffect
*
nextPE
);
fixed
newSpeed
,
PaletteEffect
*
nextPE
);
void
apply
(
SDL_Color
*
shownPalette
,
bool
direct
,
int
mspf
);
void
apply
(
SDL_Color
*
shownPalette
,
bool
direct
,
int
mspf
);
...
@@ -190,8 +186,7 @@ class P1DPaletteEffect : public PaletteEffect {
...
@@ -190,8 +186,7 @@ class P1DPaletteEffect : public PaletteEffect {
fixed
speed
;
// Relative X & Y speed - as in Jazz 2
fixed
speed
;
// Relative X & Y speed - as in Jazz 2
public
:
public
:
P1DPaletteEffect
(
unsigned
char
newFirst
,
int
newAmount
,
P1DPaletteEffect
(
unsigned
char
newFirst
,
int
newAmount
,
fixed
newSpeed
,
PaletteEffect
*
nextPE
);
fixed
newSpeed
,
PaletteEffect
*
nextPE
);
void
apply
(
SDL_Color
*
shownPalette
,
bool
direct
,
int
mspf
);
void
apply
(
SDL_Color
*
shownPalette
,
bool
direct
,
int
mspf
);
...
@@ -211,10 +206,6 @@ class WaterPaletteEffect : public PaletteEffect {
...
@@ -211,10 +206,6 @@ class WaterPaletteEffect : public PaletteEffect {
};
};
// Variable
EXTERN
PaletteEffect
*
paletteEffects
;
#endif
#endif
src/io/gfx/sprite.cpp
View file @
ac000e21
...
@@ -138,31 +138,33 @@ void Sprite::drawScaled (int x, int y, fixed scale) {
...
@@ -138,31 +138,33 @@ void Sprite::drawScaled (int x, int y, fixed scale) {
unsigned
char
*
srcRow
;
unsigned
char
*
srcRow
;
unsigned
char
*
dstRow
;
unsigned
char
*
dstRow
;
unsigned
char
pixel
,
key
;
unsigned
char
pixel
,
key
;
int
width
,
height
;
int
width
,
height
,
fullWidth
,
fullHeight
;
int
dstX
,
dstY
;
int
dstX
,
dstY
;
int
srcX
,
srcY
;
int
srcX
,
srcY
;
key
=
pixels
->
format
->
colorkey
;
key
=
pixels
->
format
->
colorkey
;
width
=
FTOI
(
pixels
->
w
*
scale
);
fullWidth
=
FTOI
(
pixels
->
w
*
scale
);
if
(
x
+
width
>
canvasW
)
width
=
canvasW
-
x
;
if
(
x
<
-
(
fullWidth
>>
1
))
return
;
// Off-screen
if
(
x
<
-
width
)
return
;
// Off-screen
if
(
x
+
(
fullWidth
>>
1
)
>
canvasW
)
width
=
canvasW
+
(
fullWidth
>>
1
)
-
x
;
else
width
=
fullWidth
;
height
=
FTOI
(
pixels
->
h
*
scale
);
fullHeight
=
FTOI
(
pixels
->
h
*
scale
);
if
(
y
+
height
>
canvasH
)
height
=
canvasH
-
y
;
if
(
y
<
-
(
fullHeight
>>
1
))
return
;
// Off-screen
if
(
y
<
-
height
)
return
;
// Off-screen
if
(
y
+
(
fullHeight
>>
1
)
>
canvasH
)
height
=
canvasH
+
(
fullHeight
>>
1
)
-
y
;
else
height
=
fullHeight
;
if
(
SDL_MUSTLOCK
(
canvas
))
SDL_LockSurface
(
canvas
);
if
(
SDL_MUSTLOCK
(
canvas
))
SDL_LockSurface
(
canvas
);
if
(
y
<
0
)
{
if
(
y
<
(
fullHeight
>>
1
)
)
{
srcY
=
-
y
;
srcY
=
(
fullHeight
>>
1
)
-
y
;
dstY
=
0
;
dstY
=
0
;
}
else
{
}
else
{
srcY
=
0
;
srcY
=
0
;
dstY
=
y
;
dstY
=
y
-
(
fullHeight
>>
1
)
;
}
}
...
@@ -171,15 +173,15 @@ void Sprite::drawScaled (int x, int y, fixed scale) {
...
@@ -171,15 +173,15 @@ void Sprite::drawScaled (int x, int y, fixed scale) {
srcRow
=
((
unsigned
char
*
)(
pixels
->
pixels
))
+
(
pixels
->
pitch
*
DIV
(
srcY
,
scale
));
srcRow
=
((
unsigned
char
*
)(
pixels
->
pixels
))
+
(
pixels
->
pitch
*
DIV
(
srcY
,
scale
));
dstRow
=
((
unsigned
char
*
)(
canvas
->
pixels
))
+
(
canvas
->
pitch
*
dstY
);
dstRow
=
((
unsigned
char
*
)(
canvas
->
pixels
))
+
(
canvas
->
pitch
*
dstY
);
if
(
x
<
0
)
{
if
(
x
<
(
fullWidth
>>
1
)
)
{
srcX
=
-
x
;
srcX
=
(
fullWidth
>>
1
)
-
x
;
dstX
=
0
;
dstX
=
0
;
}
else
{
}
else
{
srcX
=
0
;
srcX
=
0
;
dstX
=
x
;
dstX
=
x
-
(
fullWidth
>>
1
)
;
}
}
...
...
src/io/gfx/sprite.h
View file @
ac000e21
...
@@ -23,8 +23,10 @@
...
@@ -23,8 +23,10 @@
#ifndef _SPRITE_H
#ifndef _SPRITE_H
#define _SPRITE_H
#define _SPRITE_H
#include "OpenJazz.h"
#include <SDL/SDL.h>
#include <SDL/SDL.h>
...
...
src/io/gfx/video.cpp
View file @
ac000e21
...
@@ -267,7 +267,7 @@ void Video::expose () {
...
@@ -267,7 +267,7 @@ void Video::expose () {
}
}
void
Video
::
flip
(
int
mspf
)
{
void
Video
::
flip
(
int
mspf
,
PaletteEffect
*
paletteEffects
)
{
SDL_Color
shownPalette
[
256
];
SDL_Color
shownPalette
[
256
];
...
...
src/io/gfx/video.h
View file @
ac000e21
...
@@ -24,7 +24,7 @@
...
@@ -24,7 +24,7 @@
#define _VIDEO_H
#define _VIDEO_H
#include "
OpenJazz
.h"
#include "
paletteeffects
.h"
#include <SDL/SDL.h>
#include <SDL/SDL.h>
...
@@ -91,7 +91,7 @@ class Video {
...
@@ -91,7 +91,7 @@ class Video {
#endif
#endif
void
expose
();
void
expose
();
void
flip
(
int
mspf
);
void
flip
(
int
mspf
,
PaletteEffect
*
paletteEffects
);
};
};
...
...
src/io/network.cpp
View file @
ac000e21
...
@@ -32,6 +32,9 @@
...
@@ -32,6 +32,9 @@
#include "gfx/video.h"
#include "gfx/video.h"
#include "network.h"
#include "network.h"
#include "loop.h"
#include "util.h"
#ifdef USE_SOCKETS
#ifdef USE_SOCKETS
#ifdef WIN32
#ifdef WIN32
#include <winsock.h>
#include <winsock.h>
...
...
src/io/sound.cpp
View file @
ac000e21
...
@@ -30,32 +30,37 @@
...
@@ -30,32 +30,37 @@
#include "file.h"
#include "file.h"
#include "sound.h"
#include "sound.h"
#include "util.h"
#include <SDL/SDL_audio.h>
#include <SDL/SDL_audio.h>
#ifdef USE_MODPLUG
#include <modplug.h>
#endif
#ifdef __SYMBIAN32__
#ifdef __SYMBIAN32__
#define SOUND_FREQ 22050
#define SOUND_FREQ 22050
#else
#else
#define SOUND_FREQ 44100
#define SOUND_FREQ 44100
#endif
#endif
#ifdef USE_MODPLUG
#ifdef USE_MODPLUG
#include <modplug.h>
#ifdef __SYMBIAN32__
ModPlugFile
*
musicFile
;
#define MUSIC_RESAMPLEMODE MODPLUG_RESAMPLE_LINEAR
#define MUSIC_FLAGS MODPLUG_ENABLE_MEGABASS
#ifdef __SYMBIAN32__
#elif defined(WIZ) || defined(GP2X)
#define MUSIC_RESAMPLEMODE MODPLUG_RESAMPLE_LINEAR
#define MUSIC_RESAMPLEMODE MODPLUG_RESAMPLE_LINEAR
#define MUSIC_FLAGS MODPLUG_ENABLE_MEGABASS
#define MUSIC_FLAGS 0
#else
#else
#if defined(WIZ) || defined(GP2X)
#define MUSIC_RESAMPLEMODE MODPLUG_RESAMPLE_FIR
#define MUSIC_RESAMPLEMODE MODPLUG_RESAMPLE_LINEAR
#define MUSIC_FLAGS MODPLUG_ENABLE_NOISE_REDUCTION | MODPLUG_ENABLE_REVERB | MODPLUG_ENABLE_MEGABASS | MODPLUG_ENABLE_SURROUND
#define MUSIC_FLAGS 0
#endif
#else
#define MUSIC_RESAMPLEMODE MODPLUG_RESAMPLE_FIR
ModPlugFile
*
musicFile
;
#define MUSIC_FLAGS MODPLUG_ENABLE_NOISE_REDUCTION | MODPLUG_ENABLE_REVERB | MODPLUG_ENABLE_MEGABASS | MODPLUG_ENABLE_SURROUND
#endif
#endif
#endif
#endif
SDL_AudioSpec
audioSpec
;
SDL_AudioSpec
audioSpec
;
...
@@ -251,7 +256,7 @@ void stopMusic () {
...
@@ -251,7 +256,7 @@ void stopMusic () {
}
}
SDL_PauseAudio
(
0
);
SDL_PauseAudio
(
0
);
#endif
#endif
return
;
return
;
}
}
...
...
src/level/bullet.cpp
View file @
ac000e21
...
@@ -66,7 +66,7 @@ Bullet::Bullet (Player* sourcePlayer, bool lower, unsigned int ticks) {
...
@@ -66,7 +66,7 @@ Bullet::Bullet (Player* sourcePlayer, bool lower, unsigned int ticks) {
time
=
ticks
+
T_TNT
;
time
=
ticks
+
T_TNT
;
// Red flash
// Red flash
paletteEffects
=
new
FlashPaletteEffect
(
255
,
0
,
0
,
T_TNT
,
paletteEffects
);
level
->
flash
(
255
,
0
,
0
,
T_TNT
);
}
else
{
}
else
{
...
...
src/level/demolevel.cpp
View file @
ac000e21
...
@@ -34,7 +34,9 @@
...
@@ -34,7 +34,9 @@
#include "io/file.h"
#include "io/file.h"
#include "io/gfx/font.h"
#include "io/gfx/font.h"
#include "io/gfx/video.h"
#include "io/gfx/video.h"
#include "player/player.h"
#include "player/player.h"
#include "loop.h"
#include "util.h"
DemoLevel
::
DemoLevel
(
const
char
*
fileName
)
{
DemoLevel
::
DemoLevel
(
const
char
*
fileName
)
{
...
@@ -108,7 +110,7 @@ int DemoLevel::play () {
...
@@ -108,7 +110,7 @@ int DemoLevel::play () {
while
(
true
)
{
while
(
true
)
{
// Do general processing
// Do general processing
if
(
loop
(
NORMAL_LOOP
)
==
E_QUIT
)
return
E_QUIT
;
if
(
loop
(
NORMAL_LOOP
,
paletteEffects
)
==
E_QUIT
)
return
E_QUIT
;
if
(
controls
.
release
(
C_ESCAPE
))
return
E_NONE
;
if
(
controls
.
release
(
C_ESCAPE
))
return
E_NONE
;
...
...
src/level/event/eventframe.cpp
View file @
ac000e21
...
@@ -34,6 +34,7 @@
...
@@ -34,6 +34,7 @@
#include "io/gfx/video.h"
#include "io/gfx/video.h"
#include "io/sound.h"
#include "io/sound.h"
#include "player/player.h"
#include "player/player.h"
#include "util.h"
#include <stdlib.h>
#include <stdlib.h>
...
...
src/level/level.cpp
View file @
ac000e21
...
@@ -53,6 +53,8 @@
...
@@ -53,6 +53,8 @@
#include "menu/menu.h"
#include "menu/menu.h"
#include "player/player.h"
#include "player/player.h"
#include "scene/scene.h"
#include "scene/scene.h"
#include "loop.h"
#include "util.h"
#include <string.h>
#include <string.h>
...
@@ -101,7 +103,8 @@ Level::~Level () {
...
@@ -101,7 +103,8 @@ Level::~Level () {
}
}
delete
[]
sceneFile
;
delete
[]
sceneFile
;
delete
[]
musicFile
;
return
;
return
;
...
@@ -385,6 +388,15 @@ void Level::playSound (int sound) {
...
@@ -385,6 +388,15 @@ void Level::playSound (int sound) {
return
;
return
;
}
}
void
Level
::
flash
(
unsigned
char
red
,
unsigned
char
green
,
unsigned
char
blue
,
int
duration
)
{
paletteEffects
=
new
FlashPaletteEffect
(
red
,
green
,
blue
,
duration
,
paletteEffects
);
return
;
}
void
Level
::
setStage
(
LevelStage
newStage
)
{
void
Level
::
setStage
(
LevelStage
newStage
)
{
...
@@ -505,7 +517,6 @@ int Level::play () {
...
@@ -505,7 +517,6 @@ 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"
};
PaletteEffect
*
levelPE
;
char
*
string
;
char
*
string
;
bool
pmessage
,
pmenu
;
bool
pmessage
,
pmenu
;
int
stats
,
option
;
int
stats
,
option
;
...
@@ -529,9 +540,11 @@ int Level::play () {
...
@@ -529,9 +540,11 @@ int Level::play () {
video
.
setPalette
(
palette
);
video
.
setPalette
(
palette
);
playMusic
(
musicFile
);
while
(
true
)
{
while
(
true
)
{
if
(
loop
(
NORMAL_LOOP
)
==
E_QUIT
)
return
E_QUIT
;
if
(
loop
(
NORMAL_LOOP
,
paletteEffects
)
==
E_QUIT
)
return
E_QUIT
;
if
(
controls
.
release
(
C_ESCAPE
))
{
if
(
controls
.
release
(
C_ESCAPE
))
{
...
@@ -579,18 +592,11 @@ int Level::play () {
...
@@ -579,18 +592,11 @@ int Level::play () {
if
(
!
gameMode
)
{
if
(
!
gameMode
)
{
// Don't want palette effects in setup menu
levelPE
=
paletteEffects
;
paletteEffects
=
NULL
;
if
(
menu
->
setup
()
==
E_QUIT
)
return
E_QUIT
;
if
(
menu
->
setup
()
==
E_QUIT
)
return
E_QUIT
;
// Restore level palette
// Restore level palette
video
.
setPalette
(
palette
);
video
.
setPalette
(
palette
);
// Restore palette effects
paletteEffects
=
levelPE
;
}
}
break
;
break
;
...
...
src/level/level.h
View file @
ac000e21
...
@@ -91,7 +91,8 @@ class Scene;
...
@@ -91,7 +91,8 @@ class Scene;
class
Level
:
public
BaseLevel
{
class
Level
:
public
BaseLevel
{
private
:
private
:
char
*
musicFile
;
char
*
sceneFile
;
char
*
sceneFile
;
Anim
animSet
[
ANIMS
];
Anim
animSet
[
ANIMS
];
char
miscAnims
[
4
];
char
miscAnims
[
4
];
...
@@ -147,7 +148,8 @@ class Level : public BaseLevel {
...
@@ -147,7 +148,8 @@ class Level : public BaseLevel {
Anim
*
getMiscAnim
(
unsigned
char
anim
);
Anim
*
getMiscAnim
(
unsigned
char
anim
);
void
setWaterLevel
(
unsigned
char
gridY
);
void
setWaterLevel
(
unsigned
char
gridY
);
fixed
getWaterLevel
();
fixed
getWaterLevel
();
void
playSound
(
int
sound
);
void
playSound
(
int
sound
);
void
flash
(
unsigned
char
red
,
unsigned
char
green
,
unsigned
char
blue
,
int
duration
);
void
setStage
(
LevelStage
stage
);
void
setStage
(
LevelStage
stage
);
LevelStage
getStage
();
LevelStage
getStage
();
void
receive
(
unsigned
char
*
buffer
);
void
receive
(
unsigned
char
*
buffer
);
...
...
src/level/levelframe.cpp
View file @
ac000e21
...
@@ -37,7 +37,8 @@
...
@@ -37,7 +37,8 @@
#include "io/controls.h"
#include "io/controls.h"
#include "io/gfx/font.h"
#include "io/gfx/font.h"
#include "io/gfx/video.h"
#include "io/gfx/video.h"
#include "player/player.h"
#include "player/player.h"
#include "util.h"
int
Level
::
step
()
{
int
Level
::
step
()
{
...
...
src/level/levelload.cpp
View file @
ac000e21
...
@@ -43,6 +43,8 @@
...
@@ -43,6 +43,8 @@
#include "io/sound.h"
#include "io/sound.h"
#include "menu/menu.h"
#include "menu/menu.h"
#include "player/player.h"
#include "player/player.h"
#include "loop.h"
#include "util.h"
#include <string.h>
#include <string.h>
...
@@ -712,12 +714,10 @@ int Level::load (char *fileName, unsigned char diff, bool checkpoint) {
...
@@ -712,12 +714,10 @@ int Level::load (char *fileName, unsigned char diff, bool checkpoint) {
file
->
seek
(
x
+
288
,
true
);
file
->
seek
(
x
+
288
,
true
);
// Music file
// Music file
string
=
file
->
loadString
();
musicFile
=
file
->
loadString
();
playMusic
(
string
);
// 26 bytes of undiscovered usefulness, less the music file name
// 26 bytes of undiscovered usefulness, less the music file name
file
->
seek
(
x
+
314
,
true
);
file
->
seek
(
x
+
314
,
true
);
delete
[]
string
;
// End of episode cutscene
// End of episode cutscene
sceneFile
=
file
->
loadString
();
sceneFile
=
file
->
loadString
();
...
...
src/loop.h
0 → 100644
View file @
ac000e21
/*
*
* loop.h
*
* 30th April 2010: Created loop.h from parts of OpenJazz.h
*
* 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
*
*/
#ifndef _LOOP_H
#define _LOOP_H
#include "io/gfx/paletteeffects.h"
// Enum
enum
LoopType
{
NORMAL_LOOP
,
TYPING_LOOP
,
SET_KEY_LOOP
,
SET_JOYSTICK_LOOP
};
// Function in main.cpp
EXTERN
int
loop
(
LoopType
type
,
PaletteEffect
*
paletteEffects
=
NULL
);
#endif
src/main.cpp
View file @
ac000e21
...
@@ -44,6 +44,8 @@
...
@@ -44,6 +44,8 @@
#include "menu/menu.h"
#include "menu/menu.h"
#include "player/player.h"
#include "player/player.h"
#include "scene/scene.h"
#include "scene/scene.h"
#include "loop.h"
#include "util.h"
#include <string.h>
#include <string.h>
...
@@ -304,9 +306,6 @@ int loadMain (int argc, char *argv[]) {
...
@@ -304,9 +306,6 @@ int loadMain (int argc, char *argv[]) {
if
(
SDL_NumJoysticks
()
>
0
)
SDL_JoystickOpen
(
0
);
if
(
SDL_NumJoysticks
()
>
0
)
SDL_JoystickOpen
(
0
);
paletteEffects
=
NULL
;
// Set up audio
// Set up audio
openAudio
();
openAudio
();
...
@@ -581,100 +580,100 @@ void freeMain () {
...
@@ -581,100 +580,100 @@ void freeMain () {
}
}
int
loop
(
LoopType
type
)
{
int
loop
(
LoopType
type
,
PaletteEffect
*
paletteEffects
)
{
SDL_Event
event
;
SDL_Event
event
;
int
prevTicks
,
ret
;
int
prevTicks
,
ret
;
// Update tick count
// Update tick count
prevTicks
=
globalTicks
;
prevTicks
=
globalTicks
;
globalTicks
=
SDL_GetTicks
();
globalTicks
=
SDL_GetTicks
();
// Show what has been drawn
// Show what has been drawn
video
.
flip
(
globalTicks
-
prevTicks
);
video
.
flip
(
globalTicks
-
prevTicks
,
paletteEffects
);
// Process system events
// Process system events
while
(
SDL_PollEvent
(
&
event
))
{
while
(
SDL_PollEvent
(
&
event
))
{
switch
(
event
.
type
)
{
switch
(
event
.
type
)
{
case
SDL_KEYDOWN
:
case
SDL_KEYDOWN
:
#ifndef FULLSCREEN_ONLY
#ifndef FULLSCREEN_ONLY
// If Alt + Enter has been pressed, go to full screen
// If Alt + Enter has been pressed, go to full screen
if
((
event
.
key
.
keysym
.
sym
==
SDLK_RETURN
)
&&
if
((
event
.
key
.
keysym
.
sym
==
SDLK_RETURN
)
&&
(
event
.
key
.
keysym
.
mod
&
KMOD_ALT
))
{
(
event
.
key
.
keysym
.
mod
&
KMOD_ALT
))
{
video
.
flipFullscreen
();
video
.
flipFullscreen
();
}
}
#endif
#endif
#if defined(WIZ) || defined(GP2X)
#if defined(WIZ) || defined(GP2X)
SDL_ShowCursor
(
SDL_DISABLE
);
SDL_ShowCursor
(
SDL_DISABLE
);
#endif
#endif
// Break statement intentionally omitted
// Break statement intentionally omitted
case
SDL_KEYUP
:
case
SDL_KEYUP
:
case
SDL_JOYBUTTONDOWN
:
case
SDL_JOYBUTTONDOWN
:
case
SDL_JOYBUTTONUP
:
case
SDL_JOYBUTTONUP
:
case
SDL_JOYAXISMOTION
:
case
SDL_JOYAXISMOTION
:
ret
=
controls
.
update
(
&
event
,
type
);
ret
=
controls
.
update
(
&
event
,
type
);
if
(
ret
!=
E_NONE
)
return
ret
;
if
(
ret
!=
E_NONE
)
return
ret
;
#if defined(WIZ) || defined(GP2X)
#if defined(WIZ) || defined(GP2X)
if
(
event
.
jbutton
.
button
==
GP2X_BUTTON_VOLUP
)
{
if
(
event
.
jbutton
.
button
==
GP2X_BUTTON_VOLUP
)
{
if
(
event
.
type
==
SDL_JOYBUTTONDOWN
)
if
(
event
.
type
==
SDL_JOYBUTTONDOWN
)
volume_direction
=
VOLUME_UP
;
volume_direction
=
VOLUME_UP
;
else
else
volume_direction
=
VOLUME_NOCHG
;
volume_direction
=
VOLUME_NOCHG
;
}
}
if
(
event
.
jbutton
.
button
==
GP2X_BUTTON_VOLDOWN
)
{
if
(
event
.
jbutton
.
button
==
GP2X_BUTTON_VOLDOWN
)
{
if
(
event
.
type
==
SDL_JOYBUTTONDOWN
)
if
(
event
.
type
==
SDL_JOYBUTTONDOWN
)
volume_direction
=
VOLUME_DOWN
;
volume_direction
=
VOLUME_DOWN
;
else
else
volume_direction
=
VOLUME_NOCHG
;
volume_direction
=
VOLUME_NOCHG
;
}
}
#endif
#endif
break
;
break
;
#ifndef FULLSCREEN_ONLY
#ifndef FULLSCREEN_ONLY
case
SDL_VIDEORESIZE
:
case
SDL_VIDEORESIZE
:
video
.
create
(
event
.
resize
.
w
,
event
.
resize
.
h
);
video
.
create
(
event
.
resize
.
w
,
event
.
resize
.
h
);
break
;
break
;
case
SDL_VIDEOEXPOSE
:
case
SDL_VIDEOEXPOSE
:
video
.
expose
();
break
;
#endif
case
SDL_QUIT
:
return
E_QUIT
;
}
}
controls
.
loop
();
#if defined(WIZ) || defined(GP2X)
WIZ_AdjustVolume
(
volume_direction
);
#endif
return
E_NONE
;
}
video
.
expose
();
break
;
#endif
case
SDL_QUIT
:
return
E_QUIT
;
}
}
controls
.
loop
();
#if defined(WIZ) || defined(GP2X)
WIZ_AdjustVolume
(
volume_direction
);
#endif
return
E_NONE
;
}
int
main
(
int
argc
,
char
*
argv
[])
{
int
main
(
int
argc
,
char
*
argv
[])
{
Scene
*
scene
=
NULL
;
Scene
*
scene
=
NULL
;
...
...
src/menu/gamemenu.cpp
View file @
ac000e21
...
@@ -34,6 +34,8 @@
...
@@ -34,6 +34,8 @@
#include "io/gfx/font.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"
int
Menu
::
newGameDifficulty
(
GameModeType
mode
,
int
levelNum
,
int
worldNum
)
{
int
Menu
::
newGameDifficulty
(
GameModeType
mode
,
int
levelNum
,
int
worldNum
)
{
...
...
src/menu/mainmenu.cpp
View file @
ac000e21
...
@@ -36,6 +36,7 @@
...
@@ -36,6 +36,7 @@
#include "level/level.h"
#include "level/level.h"
#include "player/player.h"
#include "player/player.h"
#include "scene/scene.h"
#include "scene/scene.h"
#include "loop.h"
int
Menu
::
main
()
{
int
Menu
::
main
()
{
...
...
src/menu/menuutil.cpp
View file @
ac000e21
...
@@ -31,6 +31,8 @@
...
@@ -31,6 +31,8 @@
#include "io/gfx/font.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 <string.h>
#include <string.h>
...
...
src/menu/setupmenu.cpp
View file @
ac000e21
...
@@ -33,6 +33,7 @@
...
@@ -33,6 +33,7 @@
#include "io/gfx/video.h"
#include "io/gfx/video.h"
#include "io/sound.h"
#include "io/sound.h"
#include "player/player.h"
#include "player/player.h"
#include "loop.h"
int
Menu
::
setupKeyboard
()
{
int
Menu
::
setupKeyboard
()
{
...
...
src/planet.cpp
→
src/planet
/planet
.cpp
View file @
ac000e21
...
@@ -30,12 +30,21 @@
...
@@ -30,12 +30,21 @@
#include "planet.h"
#include "planet.h"
#include "io/controls.h"
#include "io/controls.h"
#include "io/file.h"
#include "io/file.h"
#include "io/gfx/font.h"
#include "io/gfx/video.h"
#include "io/sound.h"
#include "loop.h"
#include "util.h"
#include <string.h>
Planet
::
Planet
(
char
*
fileName
)
{
Planet
::
Planet
(
char
*
fileName
,
int
previous
)
{
File
*
file
;
File
*
file
;
unsigned
char
*
pixels
;
int
count
;
try
{
try
{
...
@@ -46,8 +55,37 @@ Planet::Planet (char * fileName) {
...
@@ -46,8 +55,37 @@ Planet::Planet (char * fileName) {
throw
e
;
throw
e
;
}
}
// TODO: Load planet file
id
=
file
->
loadShort
();
if
(
id
==
previous
)
{
// Not approaching a planet if already there
delete
file
;
throw
E_NONE
;
}
// Load planet name
name
=
file
->
loadString
();
// Lower-case the name
for
(
count
=
0
;
name
[
count
];
count
++
)
{
if
((
name
[
count
]
>=
65
)
&&
(
name
[
count
]
<=
90
))
name
[
count
]
+=
32
;
}
// Load the palette
file
->
loadPalette
(
palette
,
false
);
// Load the planet image
pixels
=
file
->
loadBlock
(
64
*
55
);
sprite
.
setPixels
(
pixels
,
64
,
55
,
0
);
delete
[]
pixels
;
delete
file
;
delete
file
;
...
@@ -58,23 +96,51 @@ Planet::Planet (char * fileName) {
...
@@ -58,23 +96,51 @@ Planet::Planet (char * fileName) {
Planet
::~
Planet
()
{
Planet
::~
Planet
()
{
// Nothing to do
delete
[]
name
;
return
;
return
;
}
}
int
Planet
::
getId
()
{
return
id
;
}
int
Planet
::
play
()
{
int
Planet
::
play
()
{
unsigned
int
tickOffset
;
tickOffset
=
globalTicks
;
stopMusic
();
video
.
setPalette
(
palette
);
while
(
true
)
{
while
(
true
)
{
if
(
loop
(
NORMAL_LOOP
)
==
E_QUIT
)
return
E_QUIT
;
if
(
loop
(
NORMAL_LOOP
)
==
E_QUIT
)
return
E_QUIT
;
if
(
controls
.
release
(
C_ESCAPE
))
return
E_NONE
;
if
(
controls
.
release
(
C_ESCAPE
))
return
E_NONE
;
// TODO: Display planet
SDL_Delay
(
T_FRAME
);
clearScreen
(
0
);
if
(
globalTicks
-
tickOffset
<
F2
)
sprite
.
drawScaled
(
canvasW
>>
1
,
canvasH
>>
1
,
globalTicks
-
tickOffset
);
else
if
(
globalTicks
-
tickOffset
<
F4
)
sprite
.
drawScaled
(
canvasW
>>
1
,
canvasH
>>
1
,
F2
);
else
if
(
globalTicks
-
tickOffset
<
F4
+
FQ
)
sprite
.
drawScaled
(
canvasW
>>
1
,
canvasH
>>
1
,
(
globalTicks
-
tickOffset
-
F4
)
*
32
+
F2
);
else
return
E_NONE
;
fontmn1
->
showString
(
"now approaching"
,
(
canvasW
-
288
)
>>
1
,
0
);
fontmn1
->
showString
(
name
,
(
canvasW
-
fontmn1
->
getStringWidth
(
name
))
>>
1
,
canvasH
-
24
);
}
}
return
E_NONE
;
return
E_NONE
;
...
...
src/planet.h
→
src/planet
/planet
.h
View file @
ac000e21
...
@@ -22,17 +22,29 @@
...
@@ -22,17 +22,29 @@
#ifndef _PLANET_H
#ifndef _PLANET_H
#define _PLANET_H
#define _PLANET_H
#include "io/gfx/sprite.h"
#include <SDL/SDL.h>
// Class
// Class
class
Planet
{
class
Planet
{
private
:
SDL_Color
palette
[
256
];
Sprite
sprite
;
char
*
name
;
int
id
;
public
:
public
:
Planet
(
char
*
fileName
);
Planet
(
char
*
fileName
,
int
previous
);
~
Planet
();
~
Planet
();
int
play
();
int
getId
();
int
play
();
};
};
...
...
src/player/player.cpp
View file @
ac000e21
...
@@ -41,6 +41,7 @@
...
@@ -41,6 +41,7 @@
#include "io/sound.h"
#include "io/sound.h"
#include "level/event/event.h"
#include "level/event/event.h"
#include "level/level.h"
#include "level/level.h"
#include "util.h"
#include <string.h>
#include <string.h>
...
@@ -407,7 +408,7 @@ bool Player::takeEvent (unsigned char gridX, unsigned char gridY, unsigned int t
...
@@ -407,7 +408,7 @@ bool Player::takeEvent (unsigned char gridX, unsigned char gridY, unsigned int t
gem
=
true
;
gem
=
true
;
// Yellow flash
// Yellow flash
paletteEffects
=
new
FlashPaletteEffect
(
255
,
255
,
0
,
320
,
paletteEffects
);
level
->
flash
(
255
,
255
,
0
,
320
);
break
;
break
;
...
@@ -459,7 +460,7 @@ bool Player::touchEvent (unsigned char gridX, unsigned char gridY, unsigned int
...
@@ -459,7 +460,7 @@ bool Player::touchEvent (unsigned char gridX, unsigned char gridY, unsigned int
warpTime
=
ticks
+
T_WARP
;
warpTime
=
ticks
+
T_WARP
;
// White flash
// White flash
paletteEffects
=
new
FlashPaletteEffect
(
255
,
255
,
255
,
T_WARP
,
paletteEffects
);
level
->
flash
(
255
,
255
,
255
,
T_WARP
);
}
}
...
@@ -594,7 +595,7 @@ void Player::kill (Player *source, unsigned int ticks) {
...
@@ -594,7 +595,7 @@ void Player::kill (Player *source, unsigned int ticks) {
}
}
if
(
!
gameMode
)
paletteEffects
=
new
FadeOutPaletteEffect
(
T_END
,
paletteEffects
);
if
(
!
gameMode
)
level
->
flash
(
0
,
0
,
0
,
T_END
<<
1
);
return
;
return
;
...
...
src/player/playerframe.cpp
View file @
ac000e21
...
@@ -37,6 +37,7 @@
...
@@ -37,6 +37,7 @@
#include "level/bullet.h"
#include "level/bullet.h"
#include "level/event/event.h"
#include "level/event/event.h"
#include "level/level.h"
#include "level/level.h"
#include "util.h"
void
Player
::
control
(
unsigned
int
ticks
,
int
msps
)
{
void
Player
::
control
(
unsigned
int
ticks
,
int
msps
)
{
...
@@ -731,7 +732,7 @@ void Player::view (unsigned int ticks, int mspf) {
...
@@ -731,7 +732,7 @@ void Player::view (unsigned int ticks, int mspf) {
// Apply lag proportional to player "speed"
// Apply lag proportional to player "speed"
speed
=
((
dx
>=
0
?
dx
:
-
dx
)
+
(
dy
>=
0
?
dy
:
-
dy
))
>>
14
;
speed
=
((
dx
>=
0
?
dx
:
-
dx
)
+
(
dy
>=
0
?
dy
:
-
dy
))
>>
14
;
if
(
mspf
<
speed
)
{
if
(
speed
&&
(
mspf
<
speed
)
)
{
viewX
=
((
oldViewX
*
(
speed
-
mspf
))
+
(
viewX
*
mspf
))
/
speed
;
viewX
=
((
oldViewX
*
(
speed
-
mspf
))
+
(
viewX
*
mspf
))
/
speed
;
viewY
=
((
oldViewY
*
(
speed
-
mspf
))
+
(
viewY
*
mspf
))
/
speed
;
viewY
=
((
oldViewY
*
(
speed
-
mspf
))
+
(
viewY
*
mspf
))
/
speed
;
...
...
src/scene/scene.cpp
View file @
ac000e21
...
@@ -34,7 +34,8 @@
...
@@ -34,7 +34,8 @@
#include "io/gfx/font.h"
#include "io/gfx/font.h"
#include "io/gfx/paletteeffects.h"
#include "io/gfx/paletteeffects.h"
#include "io/gfx/video.h"
#include "io/gfx/video.h"
#include "io/sound.h"
#include "io/sound.h"
#include "loop.h"
#include <string.h>
#include <string.h>
...
@@ -255,7 +256,8 @@ int Scene::play () {
...
@@ -255,7 +256,8 @@ int Scene::play () {
SceneImage
*
image
;
SceneImage
*
image
;
SceneAnimation
*
animation
=
NULL
;
SceneAnimation
*
animation
=
NULL
;
SceneFrame
*
currentFrame
=
NULL
;
SceneFrame
*
currentFrame
=
NULL
;
SceneFrame
*
lastFrame
=
NULL
;
SceneFrame
*
lastFrame
=
NULL
;
PaletteEffect
*
paletteEffect
=
NULL
;
int
frameDelay
=
0
;
int
frameDelay
=
0
;
int
prevFrame
=
0
;
int
prevFrame
=
0
;
int
continueToNextPage
=
0
;
int
continueToNextPage
=
0
;
...
@@ -269,9 +271,21 @@ int Scene::play () {
...
@@ -269,9 +271,21 @@ int Scene::play () {
while
(
true
)
{
while
(
true
)
{
if
(
loop
(
NORMAL_LOOP
)
==
E_QUIT
)
return
E_QUIT
;
if
(
loop
(
NORMAL_LOOP
,
paletteEffect
)
==
E_QUIT
)
{
if
(
paletteEffect
)
delete
paletteEffect
;
return
E_QUIT
;
}
if
(
controls
.
release
(
C_ESCAPE
)
||
(
controls
.
release
(
C_NO
)
&&
pages
[
sceneIndex
].
askForYesNo
))
return
E_NONE
;
if
(
controls
.
release
(
C_ESCAPE
)
||
(
controls
.
release
(
C_NO
)
&&
pages
[
sceneIndex
].
askForYesNo
))
{
if
(
paletteEffect
)
delete
paletteEffect
;
return
E_NONE
;
}
SDL_Delay
(
T_FRAME
);
SDL_Delay
(
T_FRAME
);
...
@@ -298,7 +312,13 @@ int Scene::play () {
...
@@ -298,7 +312,13 @@ int Scene::play () {
if
(
upOrLeft
)
sceneIndex
--
;
if
(
upOrLeft
)
sceneIndex
--
;
else
sceneIndex
++
;
else
sceneIndex
++
;
if
(
sceneIndex
==
scriptItems
)
return
E_NONE
;
if
(
sceneIndex
==
scriptItems
)
{
if
(
paletteEffect
)
delete
paletteEffect
;
return
E_NONE
;
}
lastTicks
=
globalTicks
;
lastTicks
=
globalTicks
;
// Get bg for this page
// Get bg for this page
...
@@ -310,7 +330,8 @@ int Scene::play () {
...
@@ -310,7 +330,8 @@ int Scene::play () {
if
(
newpage
)
{
if
(
newpage
)
{
//paletteEffects = new FadeOutPaletteEffect(250, paletteEffects);
//if (paletteEffect) delete paletteEffect;
//paletteEffect = new FadeOutPaletteEffect(250, NULL);
textRect
.
x
=
0
;
textRect
.
x
=
0
;
textRect
.
y
=
0
;
textRect
.
y
=
0
;
...
@@ -324,8 +345,9 @@ int Scene::play () {
...
@@ -324,8 +345,9 @@ int Scene::play () {
video
.
setPalette
(
palette
->
palette
);
video
.
setPalette
(
palette
->
palette
);
// Fade in from black
// Fade in from black
paletteEffects
=
new
FadeInPaletteEffect
(
250
,
paletteEffects
);
if
(
paletteEffect
)
delete
paletteEffect
;
paletteEffect
=
new
FadeInPaletteEffect
(
250
,
NULL
);
}
}
...
...
src/scene/sceneload.cpp
View file @
ac000e21
...
@@ -239,20 +239,11 @@ void Scene::loadAni (File *f, int dataIndex) {
...
@@ -239,20 +239,11 @@ void Scene::loadAni (File *f, int dataIndex) {
int
nextPos
=
f
->
tell
();
int
nextPos
=
f
->
tell
();
LOG
(
"PL Read position"
,
pos
);
LOG
(
"PL Read position"
,
pos
);
unsigned
short
int
len
=
f
->
loadShort
();
unsigned
short
int
len
=
f
->
loadShort
();
unsigned
char
*
buffer
=
f
->
loadBlock
(
len
);
palettes
=
new
ScenePalette
(
palettes
);
palettes
=
new
ScenePalette
(
palettes
);
f
or
(
int
count
=
0
;
count
<
256
;
count
++
)
{
f
->
loadPalette
(
palettes
->
palette
,
false
);
// Palette entries are 6-bit
// Shift them upwards to 8-bit, and fill in the lower 2 bits
palettes
->
palette
[
count
].
r
=
(
buffer
[
count
*
3
]
<<
2
)
+
(
buffer
[
count
*
3
]
>>
4
);
palettes
->
palette
[
count
].
g
=
(
buffer
[(
count
*
3
)
+
1
]
<<
2
)
+
(
buffer
[(
count
*
3
)
+
1
]
>>
4
);
palettes
->
palette
[
count
].
b
=
(
buffer
[(
count
*
3
)
+
2
]
<<
2
)
+
(
buffer
[(
count
*
3
)
+
2
]
>>
4
);
}
delete
[]
buffer
;
palettes
->
id
=
dataIndex
;
palettes
->
id
=
dataIndex
;
unsigned
short
int
value
=
0
;
unsigned
short
int
value
=
0
;
...
...
src/util.cpp
View file @
ac000e21
...
@@ -29,6 +29,8 @@
...
@@ -29,6 +29,8 @@
*/
*/
#include "util.h"
#include "io/file.h"
#include "io/file.h"
#include <string.h>
#include <string.h>
...
...
src/util.h
0 → 100644
View file @
ac000e21
/*
*
* util.h
*
* 30th April 2010: Created util.h from parts of OpenJazz.h
*
* 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
*
*/
#ifndef _UTIL_H
#define _UTIL_H
#include "OpenJazz.h"
// Variable
// Trigonometric function look-up table
EXTERN
fixed
sinLut
[
1024
];
// Functions
EXTERN
bool
fileExists
(
const
char
*
fileName
);
EXTERN
char
*
createString
(
const
char
*
string
);
EXTERN
char
*
createString
(
const
char
*
first
,
const
char
*
second
);
EXTERN
char
*
createFileName
(
const
char
*
type
,
int
extension
);
EXTERN
char
*
createFileName
(
const
char
*
type
,
const
char
*
extension
);
EXTERN
char
*
createFileName
(
const
char
*
type
,
int
level
,
int
extension
);
EXTERN
char
*
createEditableString
(
const
char
*
string
);
EXTERN
void
log
(
const
char
*
message
);
EXTERN
void
log
(
const
char
*
message
,
const
char
*
detail
);
EXTERN
void
log
(
const
char
*
message
,
int
number
);
EXTERN
void
logError
(
const
char
*
message
,
const
char
*
detail
);
EXTERN
fixed
fSin
(
fixed
angle
);
EXTERN
fixed
fCos
(
fixed
angle
);
#endif
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