Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
SRB2
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
X.organic
SRB2
Commits
60f150a8
Commit
60f150a8
authored
2 years ago
by
LJ Sonic
Browse files
Options
Downloads
Patches
Plain Diff
Remove snake_ prefix
parent
77253157
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
src/snake.c
+103
-103
103 additions, 103 deletions
src/snake.c
with
103 additions
and
103 deletions
src/snake.c
+
103
−
103
View file @
60f150a8
...
...
@@ -18,31 +18,31 @@
#include
"w_wad.h"
#include
"z_zone.h"
#define
SNAKE_
SPEED 5
#define
SNAKE_
NUM_BLOCKS_X 20
#define
SNAKE_
NUM_BLOCKS_Y 10
#define
SNAKE_
BLOCK_SIZE 12
#define
SNAKE_
BORDER_SIZE 12
#define
SNAKE_
MAP_WIDTH (
SNAKE_
NUM_BLOCKS_X *
SNAKE_
BLOCK_SIZE)
#define
SNAKE_
MAP_HEIGHT (
SNAKE_
NUM_BLOCKS_Y *
SNAKE_
BLOCK_SIZE)
#define
SNAKE_
LEFT_X ((BASEVIDWIDTH -
SNAKE_
MAP_WIDTH) / 2 -
SNAKE_
BORDER_SIZE)
#define
SNAKE_
RIGHT_X (
SNAKE_
LEFT_X +
SNAKE_
MAP_WIDTH +
SNAKE_
BORDER_SIZE * 2 - 1)
#define
SNAKE_
BOTTOM_Y (BASEVIDHEIGHT - 48)
#define
SNAKE_
TOP_Y (
SNAKE_
BOTTOM_Y -
SNAKE_
MAP_HEIGHT -
SNAKE_
BORDER_SIZE * 2 + 1)
enum
snake_
bonustype_s
{
SNAKE_
BONUS_NONE
=
0
,
SNAKE_
BONUS_SLOW
,
SNAKE_
BONUS_FAST
,
SNAKE_
BONUS_GHOST
,
SNAKE_
BONUS_NUKE
,
SNAKE_
BONUS_SCISSORS
,
SNAKE_
BONUS_REVERSE
,
SNAKE_
BONUS_EGGMAN
,
SNAKE_
NUM_BONUSES
,
#define SPEED 5
#define NUM_BLOCKS_X 20
#define NUM_BLOCKS_Y 10
#define BLOCK_SIZE 12
#define BORDER_SIZE 12
#define MAP_WIDTH (NUM_BLOCKS_X * BLOCK_SIZE)
#define MAP_HEIGHT (NUM_BLOCKS_Y * BLOCK_SIZE)
#define LEFT_X ((BASEVIDWIDTH - MAP_WIDTH) / 2 - BORDER_SIZE)
#define RIGHT_X (LEFT_X + MAP_WIDTH + BORDER_SIZE * 2 - 1)
#define BOTTOM_Y (BASEVIDHEIGHT - 48)
#define TOP_Y (BOTTOM_Y - MAP_HEIGHT - BORDER_SIZE * 2 + 1)
enum
bonustype_s
{
BONUS_NONE
=
0
,
BONUS_SLOW
,
BONUS_FAST
,
BONUS_GHOST
,
BONUS_NUKE
,
BONUS_SCISSORS
,
BONUS_REVERSE
,
BONUS_EGGMAN
,
NUM_BONUSES
,
};
typedef
struct
snake_s
...
...
@@ -55,21 +55,21 @@ typedef struct snake_s
UINT8
background
;
UINT16
snakelength
;
enum
snake_
bonustype_s
snakebonus
;
enum
bonustype_s
snakebonus
;
tic_t
snakebonustime
;
UINT8
snakex
[
SNAKE_
NUM_BLOCKS_X
*
SNAKE_
NUM_BLOCKS_Y
];
UINT8
snakey
[
SNAKE_
NUM_BLOCKS_X
*
SNAKE_
NUM_BLOCKS_Y
];
UINT8
snakedir
[
SNAKE_
NUM_BLOCKS_X
*
SNAKE_
NUM_BLOCKS_Y
];
UINT8
snakex
[
NUM_BLOCKS_X
*
NUM_BLOCKS_Y
];
UINT8
snakey
[
NUM_BLOCKS_X
*
NUM_BLOCKS_Y
];
UINT8
snakedir
[
NUM_BLOCKS_X
*
NUM_BLOCKS_Y
];
UINT8
applex
;
UINT8
appley
;
enum
snake_
bonustype_s
bonustype
;
enum
bonustype_s
bonustype
;
UINT8
bonusx
;
UINT8
bonusy
;
}
snake_t
;
static
const
char
*
snake_
bonuspatches
[]
=
{
static
const
char
*
bonuspatches
[]
=
{
NULL
,
"DL_SLOW"
,
"TVSSC0"
,
...
...
@@ -80,7 +80,7 @@ static const char *snake_bonuspatches[] = {
"TVEGC0"
,
};
static
const
char
*
snake_
backgrounds
[]
=
{
static
const
char
*
backgrounds
[]
=
{
"RVPUMICF"
,
"FRSTRCKF"
,
"TAR"
,
...
...
@@ -93,29 +93,29 @@ static const char *snake_backgrounds[] = {
"RVZGRS04"
,
};
static
void
Snake_
Initialise
(
snake_t
*
snake
)
static
void
Initialise
(
snake_t
*
snake
)
{
snake
->
paused
=
false
;
snake
->
pausepressed
=
false
;
snake
->
time
=
0
;
snake
->
nextupdate
=
SNAKE_
SPEED
;
snake
->
nextupdate
=
SPEED
;
snake
->
gameover
=
false
;
snake
->
background
=
M_RandomKey
(
sizeof
(
snake_
backgrounds
)
/
sizeof
(
*
snake_
backgrounds
));
snake
->
background
=
M_RandomKey
(
sizeof
(
backgrounds
)
/
sizeof
(
*
backgrounds
));
snake
->
snakelength
=
1
;
snake
->
snakebonus
=
SNAKE_
BONUS_NONE
;
snake
->
snakex
[
0
]
=
M_RandomKey
(
SNAKE_
NUM_BLOCKS_X
);
snake
->
snakey
[
0
]
=
M_RandomKey
(
SNAKE_
NUM_BLOCKS_Y
);
snake
->
snakebonus
=
BONUS_NONE
;
snake
->
snakex
[
0
]
=
M_RandomKey
(
NUM_BLOCKS_X
);
snake
->
snakey
[
0
]
=
M_RandomKey
(
NUM_BLOCKS_Y
);
snake
->
snakedir
[
0
]
=
0
;
snake
->
snakedir
[
1
]
=
0
;
snake
->
applex
=
M_RandomKey
(
SNAKE_
NUM_BLOCKS_X
);
snake
->
appley
=
M_RandomKey
(
SNAKE_
NUM_BLOCKS_Y
);
snake
->
applex
=
M_RandomKey
(
NUM_BLOCKS_X
);
snake
->
appley
=
M_RandomKey
(
NUM_BLOCKS_Y
);
snake
->
bonustype
=
SNAKE_
BONUS_NONE
;
snake
->
bonustype
=
BONUS_NONE
;
}
static
UINT8
Snake_
GetOppositeDir
(
UINT8
dir
)
static
UINT8
GetOppositeDir
(
UINT8
dir
)
{
if
(
dir
==
1
||
dir
==
3
)
return
dir
+
1
;
...
...
@@ -125,22 +125,22 @@ static UINT8 Snake_GetOppositeDir(UINT8 dir)
return
12
+
5
-
dir
;
}
static
void
Snake_
FindFreeSlot
(
snake_t
*
snake
,
UINT8
*
freex
,
UINT8
*
freey
,
UINT8
headx
,
UINT8
heady
)
static
void
FindFreeSlot
(
snake_t
*
snake
,
UINT8
*
freex
,
UINT8
*
freey
,
UINT8
headx
,
UINT8
heady
)
{
UINT8
x
,
y
;
UINT16
i
;
do
{
x
=
M_RandomKey
(
SNAKE_
NUM_BLOCKS_X
);
y
=
M_RandomKey
(
SNAKE_
NUM_BLOCKS_Y
);
x
=
M_RandomKey
(
NUM_BLOCKS_X
);
y
=
M_RandomKey
(
NUM_BLOCKS_Y
);
for
(
i
=
0
;
i
<
snake
->
snakelength
;
i
++
)
if
(
x
==
snake
->
snakex
[
i
]
&&
y
==
snake
->
snakey
[
i
])
break
;
}
while
(
i
<
snake
->
snakelength
||
(
x
==
headx
&&
y
==
heady
)
||
(
x
==
snake
->
applex
&&
y
==
snake
->
appley
)
||
(
snake
->
bonustype
!=
SNAKE_
BONUS_NONE
&&
x
==
snake
->
bonusx
&&
y
==
snake
->
bonusy
));
||
(
snake
->
bonustype
!=
BONUS_NONE
&&
x
==
snake
->
bonusx
&&
y
==
snake
->
bonusy
));
*
freex
=
x
;
*
freey
=
y
;
...
...
@@ -151,7 +151,7 @@ void Snake_Allocate(void **opaque)
if
(
*
opaque
)
Snake_Free
(
opaque
);
*
opaque
=
malloc
(
sizeof
(
snake_t
));
Snake_
Initialise
(
*
opaque
);
Initialise
(
*
opaque
);
}
void
Snake_Update
(
void
*
opaque
)
...
...
@@ -166,7 +166,7 @@ void Snake_Update(void *opaque)
// Handle retry
if
(
snake
->
gameover
&&
(
G_PlayerInputDown
(
0
,
GC_JUMP
)
||
gamekeydown
[
KEY_ENTER
]))
{
Snake_
Initialise
(
snake
);
Initialise
(
snake
);
snake
->
pausepressed
=
true
;
// Avoid accidental pause on respawn
}
...
...
@@ -216,18 +216,18 @@ void Snake_Update(void *opaque)
{
snake
->
snakebonustime
--
;
if
(
!
snake
->
snakebonustime
)
snake
->
snakebonus
=
SNAKE_
BONUS_NONE
;
snake
->
snakebonus
=
BONUS_NONE
;
}
snake
->
nextupdate
--
;
if
(
snake
->
nextupdate
)
return
;
if
(
snake
->
snakebonus
==
SNAKE_
BONUS_SLOW
)
snake
->
nextupdate
=
SNAKE_
SPEED
*
2
;
else
if
(
snake
->
snakebonus
==
SNAKE_
BONUS_FAST
)
snake
->
nextupdate
=
SNAKE_
SPEED
*
2
/
3
;
if
(
snake
->
snakebonus
==
BONUS_SLOW
)
snake
->
nextupdate
=
SPEED
*
2
;
else
if
(
snake
->
snakebonus
==
BONUS_FAST
)
snake
->
nextupdate
=
SPEED
*
2
/
3
;
else
snake
->
nextupdate
=
SNAKE_
SPEED
;
snake
->
nextupdate
=
SPEED
;
if
(
snake
->
gameover
)
return
;
...
...
@@ -242,7 +242,7 @@ void Snake_Update(void *opaque)
snake
->
gameover
=
true
;
break
;
case
2
:
if
(
x
<
SNAKE_
NUM_BLOCKS_X
-
1
)
if
(
x
<
NUM_BLOCKS_X
-
1
)
x
++
;
else
snake
->
gameover
=
true
;
...
...
@@ -254,7 +254,7 @@ void Snake_Update(void *opaque)
snake
->
gameover
=
true
;
break
;
case
4
:
if
(
y
<
SNAKE_
NUM_BLOCKS_Y
-
1
)
if
(
y
<
NUM_BLOCKS_Y
-
1
)
y
++
;
else
snake
->
gameover
=
true
;
...
...
@@ -262,13 +262,13 @@ void Snake_Update(void *opaque)
}
// Check collision with snake
if
(
snake
->
snakebonus
!=
SNAKE_
BONUS_GHOST
)
if
(
snake
->
snakebonus
!=
BONUS_GHOST
)
for
(
i
=
1
;
i
<
snake
->
snakelength
-
1
;
i
++
)
if
(
x
==
snake
->
snakex
[
i
]
&&
y
==
snake
->
snakey
[
i
])
{
if
(
snake
->
snakebonus
==
SNAKE_
BONUS_SCISSORS
)
if
(
snake
->
snakebonus
==
BONUS_SCISSORS
)
{
snake
->
snakebonus
=
SNAKE_
BONUS_NONE
;
snake
->
snakebonus
=
BONUS_NONE
;
snake
->
snakelength
=
i
;
S_StartSound
(
NULL
,
sfx_adderr
);
}
...
...
@@ -285,7 +285,7 @@ void Snake_Update(void *opaque)
// Check collision with apple
if
(
x
==
snake
->
applex
&&
y
==
snake
->
appley
)
{
if
(
snake
->
snakelength
+
3
<
SNAKE_
NUM_BLOCKS_X
*
SNAKE_
NUM_BLOCKS_Y
)
if
(
snake
->
snakelength
+
3
<
NUM_BLOCKS_X
*
NUM_BLOCKS_Y
)
{
snake
->
snakelength
++
;
snake
->
snakex
[
snake
->
snakelength
-
1
]
=
snake
->
snakex
[
snake
->
snakelength
-
2
];
...
...
@@ -294,18 +294,18 @@ void Snake_Update(void *opaque)
}
// Spawn new apple
Snake_
FindFreeSlot
(
snake
,
&
snake
->
applex
,
&
snake
->
appley
,
x
,
y
);
FindFreeSlot
(
snake
,
&
snake
->
applex
,
&
snake
->
appley
,
x
,
y
);
// Spawn new bonus
if
(
!
(
snake
->
snakelength
%
5
))
{
do
{
snake
->
bonustype
=
M_RandomKey
(
SNAKE_
NUM_BONUSES
-
1
)
+
1
;
}
while
(
snake
->
snakelength
>
SNAKE_
NUM_BLOCKS_X
*
SNAKE_
NUM_BLOCKS_Y
*
3
/
4
&&
(
snake
->
bonustype
==
SNAKE_
BONUS_EGGMAN
||
snake
->
bonustype
==
SNAKE_
BONUS_FAST
||
snake
->
bonustype
==
SNAKE_
BONUS_REVERSE
));
snake
->
bonustype
=
M_RandomKey
(
NUM_BONUSES
-
1
)
+
1
;
}
while
(
snake
->
snakelength
>
NUM_BLOCKS_X
*
NUM_BLOCKS_Y
*
3
/
4
&&
(
snake
->
bonustype
==
BONUS_EGGMAN
||
snake
->
bonustype
==
BONUS_FAST
||
snake
->
bonustype
==
BONUS_REVERSE
));
Snake_
FindFreeSlot
(
snake
,
&
snake
->
bonusx
,
&
snake
->
bonusy
,
x
,
y
);
FindFreeSlot
(
snake
,
&
snake
->
bonusx
,
&
snake
->
bonusy
,
x
,
y
);
}
S_StartSound
(
NULL
,
sfx_s3k6b
);
...
...
@@ -350,25 +350,25 @@ void Snake_Update(void *opaque)
snake
->
snakey
[
0
]
=
y
;
// Check collision with bonus
if
(
snake
->
bonustype
!=
SNAKE_
BONUS_NONE
&&
x
==
snake
->
bonusx
&&
y
==
snake
->
bonusy
)
if
(
snake
->
bonustype
!=
BONUS_NONE
&&
x
==
snake
->
bonusx
&&
y
==
snake
->
bonusy
)
{
S_StartSound
(
NULL
,
sfx_ncchip
);
switch
(
snake
->
bonustype
)
{
case
SNAKE_
BONUS_SLOW
:
snake
->
snakebonus
=
SNAKE_
BONUS_SLOW
;
case
BONUS_SLOW
:
snake
->
snakebonus
=
BONUS_SLOW
;
snake
->
snakebonustime
=
20
*
TICRATE
;
break
;
case
SNAKE_
BONUS_FAST
:
snake
->
snakebonus
=
SNAKE_
BONUS_FAST
;
case
BONUS_FAST
:
snake
->
snakebonus
=
BONUS_FAST
;
snake
->
snakebonustime
=
20
*
TICRATE
;
break
;
case
SNAKE_
BONUS_GHOST
:
snake
->
snakebonus
=
SNAKE_
BONUS_GHOST
;
case
BONUS_GHOST
:
snake
->
snakebonus
=
BONUS_GHOST
;
snake
->
snakebonustime
=
10
*
TICRATE
;
break
;
case
SNAKE_
BONUS_NUKE
:
case
BONUS_NUKE
:
for
(
i
=
0
;
i
<
snake
->
snakelength
;
i
++
)
{
snake
->
snakex
[
i
]
=
snake
->
snakex
[
0
];
...
...
@@ -378,11 +378,11 @@ void Snake_Update(void *opaque)
S_StartSound
(
NULL
,
sfx_bkpoof
);
break
;
case
SNAKE_
BONUS_SCISSORS
:
snake
->
snakebonus
=
SNAKE_
BONUS_SCISSORS
;
case
BONUS_SCISSORS
:
snake
->
snakebonus
=
BONUS_SCISSORS
;
snake
->
snakebonustime
=
60
*
TICRATE
;
break
;
case
SNAKE_
BONUS_REVERSE
:
case
BONUS_REVERSE
:
for
(
i
=
0
;
i
<
(
snake
->
snakelength
+
1
)
/
2
;
i
++
)
{
UINT16
i2
=
snake
->
snakelength
-
1
-
i
;
...
...
@@ -393,10 +393,10 @@ void Snake_Update(void *opaque)
// Swap first segment with last segment
snake
->
snakex
[
i
]
=
snake
->
snakex
[
i2
];
snake
->
snakey
[
i
]
=
snake
->
snakey
[
i2
];
snake
->
snakedir
[
i
]
=
Snake_
GetOppositeDir
(
snake
->
snakedir
[
i2
]);
snake
->
snakedir
[
i
]
=
GetOppositeDir
(
snake
->
snakedir
[
i2
]);
snake
->
snakex
[
i2
]
=
tmpx
;
snake
->
snakey
[
i2
]
=
tmpy
;
snake
->
snakedir
[
i2
]
=
Snake_
GetOppositeDir
(
tmpdir
);
snake
->
snakedir
[
i2
]
=
GetOppositeDir
(
tmpdir
);
}
snake
->
snakedir
[
0
]
=
0
;
...
...
@@ -404,14 +404,14 @@ void Snake_Update(void *opaque)
S_StartSound
(
NULL
,
sfx_gravch
);
break
;
default:
if
(
snake
->
snakebonus
!=
SNAKE_
BONUS_GHOST
)
if
(
snake
->
snakebonus
!=
BONUS_GHOST
)
{
snake
->
gameover
=
true
;
S_StartSound
(
NULL
,
sfx_lose
);
}
}
snake
->
bonustype
=
SNAKE_
BONUS_NONE
;
snake
->
bonustype
=
BONUS_NONE
;
}
}
...
...
@@ -425,23 +425,23 @@ void Snake_Draw(void *opaque)
V_DrawFill
(
0
,
0
,
BASEVIDWIDTH
,
BASEVIDHEIGHT
,
31
);
V_DrawFlatFill
(
SNAKE_
LEFT_X
+
SNAKE_
BORDER_SIZE
,
SNAKE_
TOP_Y
+
SNAKE_
BORDER_SIZE
,
SNAKE_
MAP_WIDTH
,
SNAKE_
MAP_HEIGHT
,
W_GetNumForName
(
snake_
backgrounds
[
snake
->
background
])
LEFT_X
+
BORDER_SIZE
,
TOP_Y
+
BORDER_SIZE
,
MAP_WIDTH
,
MAP_HEIGHT
,
W_GetNumForName
(
backgrounds
[
snake
->
background
])
);
// Borders
V_DrawFill
(
SNAKE_
LEFT_X
,
SNAKE_
TOP_Y
,
SNAKE_
BORDER_SIZE
+
SNAKE_
MAP_WIDTH
,
SNAKE_
BORDER_SIZE
,
242
);
// Top
V_DrawFill
(
SNAKE_
LEFT_X
+
SNAKE_
BORDER_SIZE
+
SNAKE_
MAP_WIDTH
,
SNAKE_
TOP_Y
,
SNAKE_
BORDER_SIZE
,
SNAKE_
BORDER_SIZE
+
SNAKE_
MAP_HEIGHT
,
242
);
// Right
V_DrawFill
(
SNAKE_
LEFT_X
+
SNAKE_
BORDER_SIZE
,
SNAKE_
TOP_Y
+
SNAKE_
BORDER_SIZE
+
SNAKE_
MAP_HEIGHT
,
SNAKE_
BORDER_SIZE
+
SNAKE_
MAP_WIDTH
,
SNAKE_
BORDER_SIZE
,
242
);
// Bottom
V_DrawFill
(
SNAKE_
LEFT_X
,
SNAKE_
TOP_Y
+
SNAKE_
BORDER_SIZE
,
SNAKE_
BORDER_SIZE
,
SNAKE_
BORDER_SIZE
+
SNAKE_
MAP_HEIGHT
,
242
);
// Left
V_DrawFill
(
LEFT_X
,
TOP_Y
,
BORDER_SIZE
+
MAP_WIDTH
,
BORDER_SIZE
,
242
);
// Top
V_DrawFill
(
LEFT_X
+
BORDER_SIZE
+
MAP_WIDTH
,
TOP_Y
,
BORDER_SIZE
,
BORDER_SIZE
+
MAP_HEIGHT
,
242
);
// Right
V_DrawFill
(
LEFT_X
+
BORDER_SIZE
,
TOP_Y
+
BORDER_SIZE
+
MAP_HEIGHT
,
BORDER_SIZE
+
MAP_WIDTH
,
BORDER_SIZE
,
242
);
// Bottom
V_DrawFill
(
LEFT_X
,
TOP_Y
+
BORDER_SIZE
,
BORDER_SIZE
,
BORDER_SIZE
+
MAP_HEIGHT
,
242
);
// Left
// Apple
V_DrawFixedPatch
(
(
SNAKE_
LEFT_X
+
SNAKE_
BORDER_SIZE
+
snake
->
applex
*
SNAKE_
BLOCK_SIZE
+
SNAKE_
BLOCK_SIZE
/
2
)
*
FRACUNIT
,
(
SNAKE_
TOP_Y
+
SNAKE_
BORDER_SIZE
+
snake
->
appley
*
SNAKE_
BLOCK_SIZE
+
SNAKE_
BLOCK_SIZE
/
2
)
*
FRACUNIT
,
(
LEFT_X
+
BORDER_SIZE
+
snake
->
applex
*
BLOCK_SIZE
+
BLOCK_SIZE
/
2
)
*
FRACUNIT
,
(
TOP_Y
+
BORDER_SIZE
+
snake
->
appley
*
BLOCK_SIZE
+
BLOCK_SIZE
/
2
)
*
FRACUNIT
,
FRACUNIT
/
4
,
0
,
W_CachePatchLongName
(
"DL_APPLE"
,
PU_HUDGFX
),
...
...
@@ -449,13 +449,13 @@ void Snake_Draw(void *opaque)
);
// Bonus
if
(
snake
->
bonustype
!=
SNAKE_
BONUS_NONE
)
if
(
snake
->
bonustype
!=
BONUS_NONE
)
V_DrawFixedPatch
(
(
SNAKE_
LEFT_X
+
SNAKE_
BORDER_SIZE
+
snake
->
bonusx
*
SNAKE_
BLOCK_SIZE
+
SNAKE_
BLOCK_SIZE
/
2
)
*
FRACUNIT
,
(
SNAKE_
TOP_Y
+
SNAKE_
BORDER_SIZE
+
snake
->
bonusy
*
SNAKE_
BLOCK_SIZE
+
SNAKE_
BLOCK_SIZE
/
2
+
4
)
*
FRACUNIT
,
(
LEFT_X
+
BORDER_SIZE
+
snake
->
bonusx
*
BLOCK_SIZE
+
BLOCK_SIZE
/
2
)
*
FRACUNIT
,
(
TOP_Y
+
BORDER_SIZE
+
snake
->
bonusy
*
BLOCK_SIZE
+
BLOCK_SIZE
/
2
+
4
)
*
FRACUNIT
,
FRACUNIT
/
2
,
0
,
W_CachePatchLongName
(
snake_
bonuspatches
[
snake
->
bonustype
],
PU_HUDGFX
),
W_CachePatchLongName
(
bonuspatches
[
snake
->
bonustype
],
PU_HUDGFX
),
NULL
);
...
...
@@ -499,10 +499,10 @@ void Snake_Draw(void *opaque)
}
V_DrawFixedPatch
(
(
SNAKE_
LEFT_X
+
SNAKE_
BORDER_SIZE
+
snake
->
snakex
[
i
]
*
SNAKE_
BLOCK_SIZE
+
SNAKE_
BLOCK_SIZE
/
2
)
*
FRACUNIT
,
(
SNAKE_
TOP_Y
+
SNAKE_
BORDER_SIZE
+
snake
->
snakey
[
i
]
*
SNAKE_
BLOCK_SIZE
+
SNAKE_
BLOCK_SIZE
/
2
)
*
FRACUNIT
,
(
LEFT_X
+
BORDER_SIZE
+
snake
->
snakex
[
i
]
*
BLOCK_SIZE
+
BLOCK_SIZE
/
2
)
*
FRACUNIT
,
(
TOP_Y
+
BORDER_SIZE
+
snake
->
snakey
[
i
]
*
BLOCK_SIZE
+
BLOCK_SIZE
/
2
)
*
FRACUNIT
,
i
==
0
&&
dir
==
0
?
FRACUNIT
/
5
:
FRACUNIT
/
2
,
snake
->
snakebonus
==
SNAKE_
BONUS_GHOST
?
V_TRANSLUCENT
:
0
,
snake
->
snakebonus
==
BONUS_GHOST
?
V_TRANSLUCENT
:
0
,
W_CachePatchLongName
(
patchname
,
PU_HUDGFX
),
NULL
);
...
...
@@ -510,17 +510,17 @@ void Snake_Draw(void *opaque)
}
// Length
V_DrawString
(
SNAKE_
RIGHT_X
+
4
,
SNAKE_
TOP_Y
,
V_MONOSPACE
,
va
(
"%u"
,
snake
->
snakelength
));
V_DrawString
(
RIGHT_X
+
4
,
TOP_Y
,
V_MONOSPACE
,
va
(
"%u"
,
snake
->
snakelength
));
// Bonus
if
(
snake
->
snakebonus
!=
SNAKE_
BONUS_NONE
if
(
snake
->
snakebonus
!=
BONUS_NONE
&&
(
snake
->
snakebonustime
>=
3
*
TICRATE
||
snake
->
time
%
4
<
4
/
2
))
V_DrawFixedPatch
(
(
SNAKE_
RIGHT_X
+
10
)
*
FRACUNIT
,
(
SNAKE_
TOP_Y
+
24
)
*
FRACUNIT
,
(
RIGHT_X
+
10
)
*
FRACUNIT
,
(
TOP_Y
+
24
)
*
FRACUNIT
,
FRACUNIT
/
2
,
0
,
W_CachePatchLongName
(
snake_
bonuspatches
[
snake
->
snakebonus
],
PU_HUDGFX
),
W_CachePatchLongName
(
bonuspatches
[
snake
->
snakebonus
],
PU_HUDGFX
),
NULL
);
}
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment