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
fe5f4bab
Commit
fe5f4bab
authored
Jul 01, 2010
by
alistert
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Implemented flipped tiles.
parent
351f3bec
Changes
12
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
160 additions
and
38 deletions
+160
-38
baselevel.cpp
src/baselevel.cpp
+0
-3
baselevel.h
src/baselevel.h
+0
-1
bonus.cpp
src/bonus/bonus.cpp
+2
-0
bonus.h
src/bonus/bonus.h
+1
-0
jj2layer.cpp
src/jj2level/jj2layer.cpp
+53
-2
jj2level.cpp
src/jj2level/jj2level.cpp
+30
-14
jj2level.h
src/jj2level/jj2level.h
+17
-9
jj2levelframe.cpp
src/jj2level/jj2levelframe.cpp
+2
-2
jj2levelload.cpp
src/jj2level/jj2levelload.cpp
+51
-7
level.cpp
src/level/level.cpp
+2
-0
level.h
src/level/level.h
+1
-0
levelload.cpp
src/level/levelload.cpp
+1
-0
No files found.
src/baselevel.cpp
View file @
fe5f4bab
...
@@ -46,7 +46,6 @@ BaseLevel::BaseLevel () {
...
@@ -46,7 +46,6 @@ BaseLevel::BaseLevel () {
smoothfps
=
50.0
f
;
smoothfps
=
50.0
f
;
paletteEffects
=
NULL
;
paletteEffects
=
NULL
;
tileSet
=
NULL
;
spriteSet
=
NULL
;
spriteSet
=
NULL
;
paused
=
false
;
paused
=
false
;
...
@@ -67,8 +66,6 @@ BaseLevel::~BaseLevel () {
...
@@ -67,8 +66,6 @@ BaseLevel::~BaseLevel () {
if
(
paletteEffects
)
delete
paletteEffects
;
if
(
paletteEffects
)
delete
paletteEffects
;
if
(
tileSet
)
SDL_FreeSurface
(
tileSet
);
if
(
spriteSet
)
delete
[]
spriteSet
;
if
(
spriteSet
)
delete
[]
spriteSet
;
return
;
return
;
...
...
src/baselevel.h
View file @
fe5f4bab
...
@@ -69,7 +69,6 @@ class BaseLevel {
...
@@ -69,7 +69,6 @@ class BaseLevel {
SetupMenu
setupMenu
;
SetupMenu
setupMenu
;
protected
:
protected
:
SDL_Surface
*
tileSet
;
Sprite
*
spriteSet
;
Sprite
*
spriteSet
;
PaletteEffect
*
paletteEffects
;
PaletteEffect
*
paletteEffects
;
SDL_Color
palette
[
256
];
SDL_Color
palette
[
256
];
...
...
src/bonus/bonus.cpp
View file @
fe5f4bab
...
@@ -374,6 +374,8 @@ Bonus::~Bonus () {
...
@@ -374,6 +374,8 @@ Bonus::~Bonus () {
// Restore panelBigFont palette
// Restore panelBigFont palette
panelBigFont
->
restorePalette
();
panelBigFont
->
restorePalette
();
SDL_FreeSurface
(
tileSet
);
delete
font
;
delete
font
;
return
;
return
;
...
...
src/bonus/bonus.h
View file @
fe5f4bab
...
@@ -57,6 +57,7 @@ class Font;
...
@@ -57,6 +57,7 @@ class Font;
class
Bonus
:
public
BaseLevel
{
class
Bonus
:
public
BaseLevel
{
private
:
private
:
SDL_Surface
*
tileSet
;
SDL_Surface
*
background
;
SDL_Surface
*
background
;
Font
*
font
;
Font
*
font
;
Anim
animSet
[
BANIMS
];
Anim
animSet
[
BANIMS
];
...
...
src/jj2level/jj2layer.cpp
View file @
fe5f4bab
...
@@ -73,6 +73,17 @@ JJ2Layer::~JJ2Layer () {
...
@@ -73,6 +73,17 @@ JJ2Layer::~JJ2Layer () {
}
}
bool
JJ2Layer
::
getFlipped
(
int
x
,
int
y
)
{
// Get flipped. We aim to offend!
if
((
x
<
0
)
||
(
y
<
0
)
||
(
x
>=
width
)
||
(
y
>=
height
))
return
false
;
return
grid
[
y
][
x
].
flipped
;
}
int
JJ2Layer
::
getHeight
()
{
int
JJ2Layer
::
getHeight
()
{
return
height
;
return
height
;
...
@@ -96,7 +107,47 @@ int JJ2Layer::getWidth () {
...
@@ -96,7 +107,47 @@ int JJ2Layer::getWidth () {
}
}
void
JJ2Layer
::
draw
(
SDL_Surface
*
tileSet
)
{
void
JJ2Layer
::
setFrame
(
unsigned
char
x
,
unsigned
char
y
,
unsigned
char
frame
)
{
grid
[
y
][
x
].
frame
=
frame
;
return
;
}
void
JJ2Layer
::
setTile
(
unsigned
char
x
,
unsigned
char
y
,
unsigned
short
int
tile
,
int
tiles
)
{
JJ2GridElement
*
ge
;
ge
=
grid
[
y
]
+
x
;
if
(
tiles
>
0
)
{
ge
->
flipped
=
tile
&
0x400
;
ge
->
tile
=
tile
&
0x3FF
;
if
(
ge
->
tile
>
tiles
)
ge
->
tile
=
0
;
}
else
{
// TSF
ge
->
flipped
=
tile
&
0x1000
;
ge
->
tile
=
tile
&
0xFFF
;
if
(
ge
->
tile
>
-
tiles
)
ge
->
tile
=
0
;
}
ge
->
frame
=
0
;
return
;
}
void
JJ2Layer
::
draw
(
SDL_Surface
*
tileSet
,
SDL_Surface
*
flippedTileSet
)
{
SDL_Rect
src
,
dst
;
SDL_Rect
src
,
dst
;
int
vX
,
vY
;
int
vX
,
vY
;
...
@@ -128,7 +179,7 @@ void JJ2Layer::draw (SDL_Surface* tileSet) {
...
@@ -128,7 +179,7 @@ void JJ2Layer::draw (SDL_Surface* tileSet) {
dst
.
x
=
TTOI
(
x
)
-
(
vX
&
31
);
dst
.
x
=
TTOI
(
x
)
-
(
vX
&
31
);
dst
.
y
=
TTOI
(
y
)
-
(
vY
&
31
);
dst
.
y
=
TTOI
(
y
)
-
(
vY
&
31
);
src
.
y
=
TTOI
(
getTile
(
x
+
ITOT
(
vX
),
y
+
ITOT
(
vY
)));
src
.
y
=
TTOI
(
getTile
(
x
+
ITOT
(
vX
),
y
+
ITOT
(
vY
)));
if
(
src
.
y
)
SDL_BlitSurface
(
tileSet
,
&
src
,
canvas
,
&
dst
);
if
(
src
.
y
)
SDL_BlitSurface
(
getFlipped
(
x
+
ITOT
(
vX
),
y
+
ITOT
(
vY
))
?
flippedTileSet
:
tileSet
,
&
src
,
canvas
,
&
dst
);
}
}
...
...
src/jj2level/jj2level.cpp
View file @
fe5f4bab
...
@@ -67,11 +67,15 @@ JJ2Level::~JJ2Level () {
...
@@ -67,11 +67,15 @@ JJ2Level::~JJ2Level () {
for
(
count
=
0
;
count
<
LAYERS
;
count
++
)
delete
layers
[
count
];
for
(
count
=
0
;
count
<
LAYERS
;
count
++
)
delete
layers
[
count
];
delete
[]
flippedMask
;
delete
[]
mask
;
delete
[]
mask
;
delete
[]
musicFile
;
delete
[]
musicFile
;
delete
[]
nextLevel
;
delete
[]
nextLevel
;
SDL_FreeSurface
(
flippedTileSet
);
SDL_FreeSurface
(
tileSet
);
delete
font
;
delete
font
;
// Restore panel font palette
// Restore panel font palette
...
@@ -85,44 +89,56 @@ JJ2Level::~JJ2Level () {
...
@@ -85,44 +89,56 @@ JJ2Level::~JJ2Level () {
bool
JJ2Level
::
checkMaskUp
(
fixed
x
,
fixed
y
)
{
bool
JJ2Level
::
checkMaskUp
(
fixed
x
,
fixed
y
)
{
int
tX
,
tY
;
tX
=
FTOT
(
x
);
tY
=
FTOT
(
y
);
// Anything off the edge of the map is solid
// Anything off the edge of the map is solid
if
((
x
<
0
)
||
(
y
<
0
)
||
(
x
>=
TTOF
(
layers
[
3
]
->
getWidth
()))
||
(
y
>=
TTOF
(
layers
[
3
]
->
getHeight
()
)))
if
((
x
<
0
)
||
(
y
<
0
)
||
(
tX
>=
layer
->
getWidth
())
||
(
tY
>=
layer
->
getHeight
(
)))
return
true
;
return
true
;
// Event 1 is one-way
// Event 1 is one-way
if
(
events
[
FTOT
(
y
)][
FTOT
(
x
)
].
type
==
1
)
return
false
;
if
(
events
[
tY
][
tX
].
type
==
1
)
return
false
;
// Check the mask in the tile in question
// Check the mask in the tile in question
return
mask
[(
layers
[
3
]
->
grid
[
FTOT
(
y
)][
FTOT
(
x
)].
tile
<<
10
)
+
((
y
>>
5
)
&
992
)
+
((
x
>>
10
)
&
31
)];
return
(
layer
->
getFlipped
(
tX
,
tY
)
?
flippedMask
:
mask
)[(
layer
->
getTile
(
tX
,
tY
)
<<
10
)
+
((
y
>>
5
)
&
992
)
+
((
x
>>
10
)
&
31
)];
}
}
bool
JJ2Level
::
checkMaskDown
(
fixed
x
,
fixed
y
)
{
bool
JJ2Level
::
checkMaskDown
(
fixed
x
,
fixed
y
)
{
int
tX
,
tY
;
tX
=
FTOT
(
x
);
tY
=
FTOT
(
y
);
// Anything off the edge of the map is solid
// Anything off the edge of the map is solid
if
((
x
<
0
)
||
(
y
<
0
)
||
(
x
>=
TTOF
(
layers
[
3
]
->
getWidth
()))
||
(
y
>=
TTOF
(
layers
[
3
]
->
getHeight
()
)))
if
((
x
<
0
)
||
(
y
<
0
)
||
(
tX
>=
layer
->
getWidth
())
||
(
tY
>=
layer
->
getHeight
(
)))
return
true
;
return
true
;
// Check the mask in the tile in question
// Check the mask in the tile in question
return
mask
[(
layers
[
3
]
->
grid
[
FTOT
(
y
)][
FTOT
(
x
)].
tile
<<
10
)
+
((
y
>>
5
)
&
992
)
+
((
x
>>
10
)
&
31
)];
return
(
layer
->
getFlipped
(
tX
,
tY
)
?
flippedMask
:
mask
)[(
layer
->
getTile
(
tX
,
tY
)
<<
10
)
+
((
y
>>
5
)
&
992
)
+
((
x
>>
10
)
&
31
)];
}
}
bool
JJ2Level
::
checkSpikes
(
fixed
x
,
fixed
y
)
{
bool
JJ2Level
::
checkSpikes
(
fixed
x
,
fixed
y
)
{
int
tX
,
tY
;
tX
=
FTOT
(
x
);
tY
=
FTOT
(
y
);
// Anything off the edge of the map is not spikes
// Anything off the edge of the map is not spikes
if
((
x
<
0
)
||
(
y
<
0
)
||
(
x
>
TTOF
(
layers
[
3
]
->
getWidth
()))
||
(
y
>
TTOF
(
layers
[
3
]
->
getHeight
())))
// JJ2Layer::getTile while return the blank tile for these cases, so do not need to do anything
return
false
;
// Event 2 is spikes
// Event 2 is spikes
if
(
events
[
FTOT
(
y
)][
FTOT
(
x
)
].
type
!=
2
)
return
false
;
if
(
events
[
tY
][
tX
].
type
!=
2
)
return
false
;
// Check the mask in the tile in question
// Check the mask in the tile in question
return
mask
[(
layers
[
3
]
->
grid
[
FTOT
(
y
)][
FTOT
(
x
)].
tile
<<
10
)
+
((
y
>>
5
)
&
992
)
+
((
x
>>
10
)
&
31
)];
return
(
layer
->
getFlipped
(
tX
,
tY
)
?
flippedMask
:
mask
)[(
layer
->
getTile
(
tX
,
tY
)
<<
10
)
+
((
y
>>
5
)
&
992
)
+
((
x
>>
10
)
&
31
)];
return
false
;
}
}
...
@@ -155,7 +171,7 @@ void JJ2Level::setFrame (unsigned char gridX, unsigned char gridY, unsigned char
...
@@ -155,7 +171,7 @@ void JJ2Level::setFrame (unsigned char gridX, unsigned char gridY, unsigned char
unsigned
char
buffer
[
MTL_L_GRID
];
unsigned
char
buffer
[
MTL_L_GRID
];
layer
s
[
3
]
->
grid
[
gridY
][
gridX
].
frame
=
frame
;
layer
->
setFrame
(
gridX
,
gridY
,
frame
)
;
if
(
gameMode
)
{
if
(
gameMode
)
{
...
@@ -242,7 +258,7 @@ void JJ2Level::receive (unsigned char* buffer) {
...
@@ -242,7 +258,7 @@ void JJ2Level::receive (unsigned char* buffer) {
case
MT_L_GRID
:
case
MT_L_GRID
:
if
(
buffer
[
4
]
==
0
)
layer
s
[
3
]
->
grid
[
buffer
[
3
]][
buffer
[
2
]].
frame
=
buffer
[
5
]
;
if
(
buffer
[
4
]
==
0
)
layer
->
setFrame
(
buffer
[
2
],
buffer
[
3
],
buffer
[
5
])
;
break
;
break
;
...
...
src/jj2level/jj2level.h
View file @
fe5f4bab
...
@@ -51,6 +51,7 @@ typedef struct {
...
@@ -51,6 +51,7 @@ typedef struct {
unsigned
short
int
tile
;
// Indexes the tile set
unsigned
short
int
tile
;
// Indexes the tile set
unsigned
char
frame
;
// Current frame being used (for animated tiles)
unsigned
char
frame
;
// Current frame being used (for animated tiles)
bool
flipped
;
}
JJ2GridElement
;
}
JJ2GridElement
;
...
@@ -69,34 +70,41 @@ class Font;
...
@@ -69,34 +70,41 @@ class Font;
class
JJ2Layer
{
class
JJ2Layer
{
private
:
private
:
JJ2GridElement
**
grid
;
int
width
,
height
;
int
width
,
height
;
public
:
public
:
JJ2GridElement
**
grid
;
JJ2Layer
();
JJ2Layer
();
JJ2Layer
(
int
newWidth
,
int
newHeight
);
JJ2Layer
(
int
newWidth
,
int
newHeight
);
~
JJ2Layer
();
~
JJ2Layer
();
bool
getFlipped
(
int
x
,
int
y
);
int
getHeight
();
int
getHeight
();
int
getTile
(
int
x
,
int
y
);
int
getTile
(
int
x
,
int
y
);
int
getWidth
();
int
getWidth
();
void
setFrame
(
unsigned
char
x
,
unsigned
char
y
,
unsigned
char
frame
);
void
setTile
(
unsigned
char
x
,
unsigned
char
y
,
unsigned
short
int
tile
,
int
tiles
);
void
draw
(
SDL_Surface
*
t
ileSet
);
void
draw
(
SDL_Surface
*
tileSet
,
SDL_Surface
*
flippedT
ileSet
);
};
};
class
JJ2Level
:
public
BaseLevel
{
class
JJ2Level
:
public
BaseLevel
{
private
:
private
:
SDL_Surface
*
tileSet
;
SDL_Surface
*
flippedTileSet
;
char
*
mask
;
char
*
flippedMask
;
char
*
musicFile
;
char
*
musicFile
;
char
*
nextLevel
;
char
*
nextLevel
;
Anim
animSet
[
128
];
Anim
animSet
[
128
];
char
*
mask
;
int
soundMap
[
32
];
int
soundMap
[
32
];
JJ2Layer
*
layers
[
LAYERS
];
JJ2Layer
*
layers
[
LAYERS
];
JJ2Layer
*
layer
;
JJ2Event
**
events
;
JJ2Event
**
events
;
int
width
,
height
;
int
width
,
height
;
bool
TSF
;
unsigned
char
difficulty
;
unsigned
char
difficulty
;
fixed
waterLevel
;
fixed
waterLevel
;
fixed
waterLevelTarget
;
fixed
waterLevelTarget
;
...
...
src/jj2level/jj2levelframe.cpp
View file @
fe5f4bab
...
@@ -104,7 +104,7 @@ void JJ2Level::draw () {
...
@@ -104,7 +104,7 @@ void JJ2Level::draw () {
// Show background layers
// Show background layers
for
(
x
=
7
;
x
>=
3
;
x
--
)
layers
[
x
]
->
draw
(
tileSet
);
for
(
x
=
7
;
x
>=
3
;
x
--
)
layers
[
x
]
->
draw
(
tileSet
,
flippedTileSet
);
// Calculate change since last step
// Calculate change since last step
...
@@ -136,7 +136,7 @@ void JJ2Level::draw () {
...
@@ -136,7 +136,7 @@ void JJ2Level::draw () {
// Show foreground layers
// Show foreground layers
for
(
x
=
2
;
x
>=
0
;
x
--
)
layers
[
x
]
->
draw
(
tileSet
);
for
(
x
=
2
;
x
>=
0
;
x
--
)
layers
[
x
]
->
draw
(
tileSet
,
flippedTileSet
);
// Temporary lines showing the water level
// Temporary lines showing the water level
...
...
src/jj2level/jj2levelload.cpp
View file @
fe5f4bab
...
@@ -304,6 +304,22 @@ int JJ2Level::loadTiles (char* fileName) {
...
@@ -304,6 +304,22 @@ int JJ2Level::loadTiles (char* fileName) {
tileSet
=
createSurface
(
tileBuffer
,
TTOI
(
1
),
TTOI
(
tiles
));
tileSet
=
createSurface
(
tileBuffer
,
TTOI
(
1
),
TTOI
(
tiles
));
SDL_SetColorKey
(
tileSet
,
SDL_SRCCOLORKEY
,
0
);
SDL_SetColorKey
(
tileSet
,
SDL_SRCCOLORKEY
,
0
);
// Flip tiles
for
(
count
=
0
;
count
<
tiles
*
32
;
count
++
)
{
for
(
x
=
0
;
x
<
16
;
x
++
)
{
y
=
tileBuffer
[(
count
*
32
)
+
x
];
tileBuffer
[(
count
*
32
)
+
x
]
=
tileBuffer
[(
count
*
32
)
+
31
-
x
];
tileBuffer
[(
count
*
32
)
+
31
-
x
]
=
y
;
}
}
flippedTileSet
=
createSurface
(
tileBuffer
,
TTOI
(
1
),
TTOI
(
tiles
));
SDL_SetColorKey
(
flippedTileSet
,
SDL_SRCCOLORKEY
,
0
);
delete
[]
tileBuffer
;
delete
[]
tileBuffer
;
...
@@ -323,6 +339,19 @@ int JJ2Level::loadTiles (char* fileName) {
...
@@ -323,6 +339,19 @@ int JJ2Level::loadTiles (char* fileName) {
}
}
flippedMask
=
new
char
[
tiles
<<
10
];
// Unpack bits
for
(
count
=
0
;
count
<
tiles
;
count
++
)
{
for
(
y
=
0
;
y
<
32
;
y
++
)
{
for
(
x
=
0
;
x
<
32
;
x
++
)
flippedMask
[(
count
<<
10
)
+
(
y
<<
5
)
+
x
]
=
(
dBuffer
[((
int
*
)
aBuffer
)[
257
+
((
maxTiles
*
11
)
>>
1
)
+
count
]
+
(
y
<<
2
)
+
(
x
>>
3
)]
>>
(
x
&
7
))
&
1
;
}
}
delete
[]
dBuffer
;
delete
[]
dBuffer
;
delete
[]
bBuffer
;
delete
[]
bBuffer
;
...
@@ -333,6 +362,7 @@ int JJ2Level::loadTiles (char* fileName) {
...
@@ -333,6 +362,7 @@ int JJ2Level::loadTiles (char* fileName) {
graphics during gameplay */
graphics during gameplay */
/*if (SDL_MUSTLOCK(tileSet)) SDL_LockSurface(tileSet);
/*if (SDL_MUSTLOCK(tileSet)) SDL_LockSurface(tileSet);
if (SDL_MUSTLOCK(flippedTileSet)) SDL_LockSurface(flippedTileSet);
for (count = 0; count < tiles; count++) {
for (count = 0; count < tiles; count++) {
...
@@ -341,7 +371,10 @@ int JJ2Level::loadTiles (char* fileName) {
...
@@ -341,7 +371,10 @@ int JJ2Level::loadTiles (char* fileName) {
for (x = 0; x < 32; x++) {
for (x = 0; x < 32; x++) {
if (mask[(count << 10) + (y << 5) + x] == 1)
if (mask[(count << 10) + (y << 5) + x] == 1)
((char *)(tileSet->pixels))[(count << 10) + (y << 5) + x] = 88;
((char *)(tileSet->pixels))[(count << 10) + (y << 5) + x] = 43;
if (flippedMask[(count << 10) + (y << 5) + x] == 1)
((char *)(flippedTileSet->pixels))[(count << 10) + (y << 5) + x] = 88;
}
}
...
@@ -349,10 +382,11 @@ int JJ2Level::loadTiles (char* fileName) {
...
@@ -349,10 +382,11 @@ int JJ2Level::loadTiles (char* fileName) {
}
}
if (SDL_MUSTLOCK(tileSet)) SDL_UnlockSurface(tileSet);*/
if (SDL_MUSTLOCK(tileSet)) SDL_UnlockSurface(tileSet);
if (SDL_MUSTLOCK(flippedTileSet)) SDL_UnlockSurface(flippedTileSet);*/
return
tiles
;
return
tiles
|
(
maxTiles
<<
16
)
;
}
}
...
@@ -463,6 +497,9 @@ int JJ2Level::load (char *fileName, unsigned char diff, bool checkpoint) {
...
@@ -463,6 +497,9 @@ int JJ2Level::load (char *fileName, unsigned char diff, bool checkpoint) {
}
}
TSF
=
tiles
>>
28
;
tiles
=
tiles
&
0xFFFF
;
// Next level
// Next level
nextLevel
=
createString
((
char
*
)
aBuffer
+
115
);
nextLevel
=
createString
((
char
*
)
aBuffer
+
115
);
...
@@ -502,10 +539,7 @@ int JJ2Level::load (char *fileName, unsigned char diff, bool checkpoint) {
...
@@ -502,10 +539,7 @@ int JJ2Level::load (char *fileName, unsigned char diff, bool checkpoint) {
if
((
x
&
3
)
==
0
)
memcpy
(
tileQuad
,
cBuffer
+
(
quadRefs
[
x
>>
2
]
<<
3
),
8
);
if
((
x
&
3
)
==
0
)
memcpy
(
tileQuad
,
cBuffer
+
(
quadRefs
[
x
>>
2
]
<<
3
),
8
);
layers
[
count
]
->
grid
[
y
][
x
].
tile
=
tileQuad
[(
x
&
3
)
<<
1
]
+
(
tileQuad
[((
x
&
3
)
<<
1
)
+
1
]
<<
8
);
layers
[
count
]
->
setTile
(
x
,
y
,
tileQuad
[(
x
&
3
)
<<
1
]
+
(
tileQuad
[((
x
&
3
)
<<
1
)
+
1
]
<<
8
),
TSF
?
-
tiles
:
tiles
);
layers
[
count
]
->
grid
[
y
][
x
].
frame
=
0
;
if
(
layers
[
count
]
->
grid
[
y
][
x
].
tile
>
tiles
)
layers
[
count
]
->
grid
[
y
][
x
].
tile
=
0
;
}
}
...
@@ -523,6 +557,8 @@ int JJ2Level::load (char *fileName, unsigned char diff, bool checkpoint) {
...
@@ -523,6 +557,8 @@ int JJ2Level::load (char *fileName, unsigned char diff, bool checkpoint) {
}
}
layer
=
layers
[
3
];
// Load events
// Load events
startX
=
0
;
startX
=
0
;
...
@@ -591,11 +627,15 @@ int JJ2Level::load (char *fileName, unsigned char diff, bool checkpoint) {
...
@@ -591,11 +627,15 @@ int JJ2Level::load (char *fileName, unsigned char diff, bool checkpoint) {
for
(
count
=
0
;
count
<
LAYERS
;
count
++
)
delete
layers
[
count
];
for
(
count
=
0
;
count
<
LAYERS
;
count
++
)
delete
layers
[
count
];
delete
[]
flippedMask
;
delete
[]
mask
;
delete
[]
mask
;
delete
[]
musicFile
;
delete
[]
musicFile
;
delete
[]
nextLevel
;
delete
[]
nextLevel
;
SDL_FreeSurface
(
flippedTileSet
);
SDL_FreeSurface
(
tileSet
);
delete
font
;
delete
font
;
return
e
;
return
e
;
...
@@ -624,11 +664,15 @@ int JJ2Level::load (char *fileName, unsigned char diff, bool checkpoint) {
...
@@ -624,11 +664,15 @@ int JJ2Level::load (char *fileName, unsigned char diff, bool checkpoint) {
for
(
x
=
0
;
x
<
LAYERS
;
x
++
)
delete
layers
[
x
];
for
(
x
=
0
;
x
<
LAYERS
;
x
++
)
delete
layers
[
x
];
delete
[]
flippedMask
;
delete
[]
mask
;
delete
[]
mask
;
delete
[]
musicFile
;
delete
[]
musicFile
;
delete
[]
nextLevel
;
delete
[]
nextLevel
;
SDL_FreeSurface
(
flippedTileSet
);
SDL_FreeSurface
(
tileSet
);
delete
font
;
delete
font
;
return
count
;
return
count
;
...
...
src/level/level.cpp
View file @
fe5f4bab
...
@@ -116,6 +116,8 @@ Level::~Level () {
...
@@ -116,6 +116,8 @@ Level::~Level () {
delete
[]
sceneFile
;
delete
[]
sceneFile
;
delete
[]
musicFile
;
delete
[]
musicFile
;
SDL_FreeSurface
(
tileSet
);
deletePanel
();
deletePanel
();
delete
font
;
delete
font
;
...
...
src/level/level.h
View file @
fe5f4bab
...
@@ -94,6 +94,7 @@ class Scene;
...
@@ -94,6 +94,7 @@ class Scene;
class
Level
:
public
BaseLevel
{
class
Level
:
public
BaseLevel
{
private
:
private
:
SDL_Surface
*
tileSet
;
SDL_Surface
*
panel
;
SDL_Surface
*
panel
;
SDL_Surface
*
panelAmmo
[
5
];
SDL_Surface
*
panelAmmo
[
5
];
char
*
musicFile
;
char
*
musicFile
;
...
...
src/level/levelload.cpp
View file @
fe5f4bab
...
@@ -619,6 +619,7 @@ int Level::load (char *fileName, unsigned char diff, bool checkpoint) {
...
@@ -619,6 +619,7 @@ int Level::load (char *fileName, unsigned char diff, bool checkpoint) {
if
(
count
<
0
)
{
if
(
count
<
0
)
{
SDL_FreeSurface
(
tileSet
);
delete
file
;
delete
file
;
deletePanel
();
deletePanel
();
delete
font
;
delete
font
;
...
...
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