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
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Terraform modules
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
kaldrum
SRB2
Commits
2f6ec137
Commit
2f6ec137
authored
1 year ago
by
LJ Sonic
Browse files
Options
Downloads
Patches
Plain Diff
Refactor
parent
32a8652c
No related branches found
No related tags found
No related merge requests found
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
src/deh_soc.c
+122
-120
122 additions, 120 deletions
src/deh_soc.c
with
122 additions
and
120 deletions
src/deh_soc.c
+
122
−
120
View file @
2f6ec137
...
...
@@ -1362,6 +1362,8 @@ void readlevelheader(MYFILE *f, INT32 num)
// Reset all previous map header information
P_AllocMapHeader
((
INT16
)(
num
-
1
));
mapheader_t
*
header
=
mapheaderinfo
[
num
-
1
];
do
{
if
(
myfgets
(
s
,
MAXLINELEN
,
f
))
...
...
@@ -1398,16 +1400,16 @@ void readlevelheader(MYFILE *f, INT32 num)
if
(
fastcmp
(
word
,
"LEVELNAME"
))
{
deh_strlcpy
(
map
header
info
[
num
-
1
]
->
lvlttl
,
word2
,
sizeof
(
map
header
info
[
num
-
1
]
->
lvlttl
),
va
(
"Level header %d: levelname"
,
num
));
strlcpy
(
map
header
info
[
num
-
1
]
->
selectheading
,
word2
,
sizeof
(
map
header
info
[
num
-
1
]
->
selectheading
));
// not deh_ so only complains once
deh_strlcpy
(
header
->
lvlttl
,
word2
,
sizeof
(
header
->
lvlttl
),
va
(
"Level header %d: levelname"
,
num
));
strlcpy
(
header
->
selectheading
,
word2
,
sizeof
(
header
->
selectheading
));
// not deh_ so only complains once
continue
;
}
// CHEAP HACK: move this over here for lowercase subtitles
if
(
fastcmp
(
word
,
"SUBTITLE"
))
{
deh_strlcpy
(
map
header
info
[
num
-
1
]
->
subttl
,
word2
,
sizeof
(
map
header
info
[
num
-
1
]
->
subttl
),
va
(
"Level header %d: subtitle"
,
num
));
deh_strlcpy
(
header
->
subttl
,
word2
,
sizeof
(
header
->
subttl
),
va
(
"Level header %d: subtitle"
,
num
));
continue
;
}
...
...
@@ -1429,19 +1431,19 @@ void readlevelheader(MYFILE *f, INT32 num)
}
// Sanity limit of 128 params
if
(
map
header
info
[
num
-
1
]
->
numCustomOptions
==
128
)
if
(
header
->
numCustomOptions
==
128
)
{
deh_warning
(
"Level header %d: too many custom parameters"
,
num
);
continue
;
}
j
=
map
header
info
[
num
-
1
]
->
numCustomOptions
++
;
j
=
header
->
numCustomOptions
++
;
map
header
info
[
num
-
1
]
->
customopts
=
Z_Realloc
(
map
header
info
[
num
-
1
]
->
customopts
,
sizeof
(
customoption_t
)
*
map
header
info
[
num
-
1
]
->
numCustomOptions
,
PU_STATIC
,
NULL
);
header
->
customopts
=
Z_Realloc
(
header
->
customopts
,
sizeof
(
customoption_t
)
*
header
->
numCustomOptions
,
PU_STATIC
,
NULL
);
// Newly allocated
modoption
=
&
map
header
info
[
num
-
1
]
->
customopts
[
j
];
modoption
=
&
header
->
customopts
[
j
];
strncpy
(
modoption
->
option
,
word
,
31
);
modoption
->
option
[
31
]
=
'\0'
;
...
...
@@ -1464,26 +1466,26 @@ void readlevelheader(MYFILE *f, INT32 num)
{
mobjtype_t
tmpflickies
[
MAXFLICKIES
];
for
(
map
header
info
[
num
-
1
]
->
numFlickies
=
0
;
((
map
header
info
[
num
-
1
]
->
numFlickies
<
MAXFLICKIES
)
&&
FLICKYTYPES
[
map
header
info
[
num
-
1
]
->
numFlickies
].
type
);
map
header
info
[
num
-
1
]
->
numFlickies
++
)
tmpflickies
[
map
header
info
[
num
-
1
]
->
numFlickies
]
=
FLICKYTYPES
[
map
header
info
[
num
-
1
]
->
numFlickies
].
type
;
for
(
header
->
numFlickies
=
0
;
((
header
->
numFlickies
<
MAXFLICKIES
)
&&
FLICKYTYPES
[
header
->
numFlickies
].
type
);
header
->
numFlickies
++
)
tmpflickies
[
header
->
numFlickies
]
=
FLICKYTYPES
[
header
->
numFlickies
].
type
;
if
(
map
header
info
[
num
-
1
]
->
numFlickies
)
// just in case...
if
(
header
->
numFlickies
)
// just in case...
{
size_t
newsize
=
sizeof
(
mobjtype_t
)
*
map
header
info
[
num
-
1
]
->
numFlickies
;
map
header
info
[
num
-
1
]
->
flickies
=
Z_Realloc
(
map
header
info
[
num
-
1
]
->
flickies
,
newsize
,
PU_STATIC
,
NULL
);
M_Memcpy
(
map
header
info
[
num
-
1
]
->
flickies
,
tmpflickies
,
newsize
);
size_t
newsize
=
sizeof
(
mobjtype_t
)
*
header
->
numFlickies
;
header
->
flickies
=
Z_Realloc
(
header
->
flickies
,
newsize
,
PU_STATIC
,
NULL
);
M_Memcpy
(
header
->
flickies
,
tmpflickies
,
newsize
);
}
}
else
{
mobjtype_t
tmpflickies
[
MAXFLICKIES
];
map
header
info
[
num
-
1
]
->
numFlickies
=
0
;
header
->
numFlickies
=
0
;
tmp
=
strtok
(
word2
,
","
);
// get up to the first MAXFLICKIES flickies
do
{
if
(
map
header
info
[
num
-
1
]
->
numFlickies
==
MAXFLICKIES
)
// never going to get above that number
if
(
header
->
numFlickies
==
MAXFLICKIES
)
// never going to get above that number
{
deh_warning
(
"Level header %d: too many flickies
\n
"
,
num
);
break
;
...
...
@@ -1497,7 +1499,7 @@ void readlevelheader(MYFILE *f, INT32 num)
//deh_warning("Level header %d: unknown flicky mobj type %s\n", num, tmp); -- no need for this line as get_mobjtype complains too
continue
;
}
tmpflickies
[
map
header
info
[
num
-
1
]
->
numFlickies
]
=
i
;
tmpflickies
[
header
->
numFlickies
]
=
i
;
}
else
// ...or a quick, limited selection of default flickies!
{
...
...
@@ -1510,17 +1512,17 @@ void readlevelheader(MYFILE *f, INT32 num)
deh_warning
(
"Level header %d: unknown flicky selection %s
\n
"
,
num
,
tmp
);
continue
;
}
tmpflickies
[
map
header
info
[
num
-
1
]
->
numFlickies
]
=
FLICKYTYPES
[
i
].
type
;
tmpflickies
[
header
->
numFlickies
]
=
GetMobjTypeByName
(
FLICKYTYPES
[
i
].
type
)
;
}
map
header
info
[
num
-
1
]
->
numFlickies
++
;
header
->
numFlickies
++
;
}
while
((
tmp
=
strtok
(
NULL
,
","
))
!=
NULL
);
if
(
map
header
info
[
num
-
1
]
->
numFlickies
)
if
(
header
->
numFlickies
)
{
size_t
newsize
=
sizeof
(
mobjtype_t
)
*
map
header
info
[
num
-
1
]
->
numFlickies
;
map
header
info
[
num
-
1
]
->
flickies
=
Z_Realloc
(
map
header
info
[
num
-
1
]
->
flickies
,
newsize
,
PU_STATIC
,
NULL
);
size_t
newsize
=
sizeof
(
mobjtype_t
)
*
header
->
numFlickies
;
header
->
flickies
=
Z_Realloc
(
header
->
flickies
,
newsize
,
PU_STATIC
,
NULL
);
// now we add them to the list!
M_Memcpy
(
map
header
info
[
num
-
1
]
->
flickies
,
tmpflickies
,
newsize
);
M_Memcpy
(
header
->
flickies
,
tmpflickies
,
newsize
);
}
else
deh_warning
(
"Level header %d: no valid flicky types found
\n
"
,
num
);
...
...
@@ -1550,23 +1552,23 @@ void readlevelheader(MYFILE *f, INT32 num)
// Strings that can be truncated
else
if
(
fastcmp
(
word
,
"SELECTHEADING"
))
{
deh_strlcpy
(
map
header
info
[
num
-
1
]
->
selectheading
,
word2
,
sizeof
(
map
header
info
[
num
-
1
]
->
selectheading
),
va
(
"Level header %d: selectheading"
,
num
));
deh_strlcpy
(
header
->
selectheading
,
word2
,
sizeof
(
header
->
selectheading
),
va
(
"Level header %d: selectheading"
,
num
));
}
else
if
(
fastcmp
(
word
,
"SCRIPTNAME"
))
{
deh_strlcpy
(
map
header
info
[
num
-
1
]
->
scriptname
,
word2
,
sizeof
(
map
header
info
[
num
-
1
]
->
scriptname
),
va
(
"Level header %d: scriptname"
,
num
));
deh_strlcpy
(
header
->
scriptname
,
word2
,
sizeof
(
header
->
scriptname
),
va
(
"Level header %d: scriptname"
,
num
));
}
else
if
(
fastcmp
(
word
,
"RUNSOC"
))
{
deh_strlcpy
(
map
header
info
[
num
-
1
]
->
runsoc
,
word2
,
sizeof
(
map
header
info
[
num
-
1
]
->
runsoc
),
va
(
"Level header %d: runsoc"
,
num
));
deh_strlcpy
(
header
->
runsoc
,
word2
,
sizeof
(
header
->
runsoc
),
va
(
"Level header %d: runsoc"
,
num
));
}
else
if
(
fastcmp
(
word
,
"ACT"
))
{
if
(
i
>=
0
&&
i
<=
99
)
// 0 for no act number
map
header
info
[
num
-
1
]
->
actnum
=
(
UINT8
)
i
;
header
->
actnum
=
(
UINT8
)
i
;
else
deh_warning
(
"Level header %d: invalid act number %d"
,
num
,
i
);
}
...
...
@@ -1584,7 +1586,7 @@ void readlevelheader(MYFILE *f, INT32 num)
if
(
word2
[
0
]
>=
'A'
&&
word2
[
0
]
<=
'Z'
&&
word2
[
2
]
==
'\0'
)
i
=
M_MapNumber
(
word2
[
0
],
word2
[
1
]);
map
header
info
[
num
-
1
]
->
nextlevel
=
(
INT16
)
i
;
header
->
nextlevel
=
(
INT16
)
i
;
}
else
if
(
fastcmp
(
word
,
"MARATHONNEXT"
))
{
...
...
@@ -1600,12 +1602,12 @@ void readlevelheader(MYFILE *f, INT32 num)
if
(
word2
[
0
]
>=
'A'
&&
word2
[
0
]
<=
'Z'
&&
word2
[
2
]
==
'\0'
)
i
=
M_MapNumber
(
word2
[
0
],
word2
[
1
]);
map
header
info
[
num
-
1
]
->
marathonnext
=
(
INT16
)
i
;
header
->
marathonnext
=
(
INT16
)
i
;
}
else
if
(
fastcmp
(
word
,
"TYPEOFLEVEL"
))
{
if
(
i
)
// it's just a number
map
header
info
[
num
-
1
]
->
typeoflevel
=
(
UINT32
)
i
;
header
->
typeoflevel
=
(
UINT32
)
i
;
else
{
UINT32
tol
=
0
;
...
...
@@ -1618,45 +1620,45 @@ void readlevelheader(MYFILE *f, INT32 num)
deh_warning
(
"Level header %d: unknown typeoflevel flag %s
\n
"
,
num
,
tmp
);
tol
|=
TYPEOFLEVEL
[
i
].
flag
;
}
while
((
tmp
=
strtok
(
NULL
,
","
))
!=
NULL
);
map
header
info
[
num
-
1
]
->
typeoflevel
=
tol
;
header
->
typeoflevel
=
tol
;
}
}
else
if
(
fastcmp
(
word
,
"KEYWORDS"
))
{
deh_strlcpy
(
map
header
info
[
num
-
1
]
->
keywords
,
word2
,
sizeof
(
map
header
info
[
num
-
1
]
->
keywords
),
va
(
"Level header %d: keywords"
,
num
));
deh_strlcpy
(
header
->
keywords
,
word2
,
sizeof
(
header
->
keywords
),
va
(
"Level header %d: keywords"
,
num
));
}
else
if
(
fastcmp
(
word
,
"MUSIC"
))
{
if
(
fastcmp
(
word2
,
"NONE"
))
map
header
info
[
num
-
1
]
->
musname
[
0
]
=
0
;
// becomes empty string
header
->
musname
[
0
]
=
0
;
// becomes empty string
else
{
deh_strlcpy
(
map
header
info
[
num
-
1
]
->
musname
,
word2
,
sizeof
(
map
header
info
[
num
-
1
]
->
musname
),
va
(
"Level header %d: music"
,
num
));
deh_strlcpy
(
header
->
musname
,
word2
,
sizeof
(
header
->
musname
),
va
(
"Level header %d: music"
,
num
));
}
}
// TODO: 2.3: Delete
else
if
(
fastcmp
(
word
,
"MUSICSLOT"
))
deh_warning
(
"Level header %d: MusicSlot parameter is deprecated and will be removed.
\n
Use
\"
Music
\"
instead."
,
num
);
else
if
(
fastcmp
(
word
,
"MUSICTRACK"
))
map
header
info
[
num
-
1
]
->
mustrack
=
((
UINT16
)
i
-
1
);
header
->
mustrack
=
((
UINT16
)
i
-
1
);
else
if
(
fastcmp
(
word
,
"MUSICPOS"
))
map
header
info
[
num
-
1
]
->
muspos
=
(
UINT32
)
get_number
(
word2
);
header
->
muspos
=
(
UINT32
)
get_number
(
word2
);
else
if
(
fastcmp
(
word
,
"MUSICINTERFADEOUT"
))
map
header
info
[
num
-
1
]
->
musinterfadeout
=
(
UINT32
)
get_number
(
word2
);
header
->
musinterfadeout
=
(
UINT32
)
get_number
(
word2
);
else
if
(
fastcmp
(
word
,
"MUSICINTER"
))
deh_strlcpy
(
map
header
info
[
num
-
1
]
->
musintername
,
word2
,
sizeof
(
map
header
info
[
num
-
1
]
->
musintername
),
va
(
"Level header %d: intermission music"
,
num
));
deh_strlcpy
(
header
->
musintername
,
word2
,
sizeof
(
header
->
musintername
),
va
(
"Level header %d: intermission music"
,
num
));
else
if
(
fastcmp
(
word
,
"MUSICPOSTBOSS"
))
deh_strlcpy
(
map
header
info
[
num
-
1
]
->
muspostbossname
,
word2
,
sizeof
(
map
header
info
[
num
-
1
]
->
muspostbossname
),
va
(
"Level header %d: post-boss music"
,
num
));
deh_strlcpy
(
header
->
muspostbossname
,
word2
,
sizeof
(
header
->
muspostbossname
),
va
(
"Level header %d: post-boss music"
,
num
));
else
if
(
fastcmp
(
word
,
"MUSICPOSTBOSSTRACK"
))
map
header
info
[
num
-
1
]
->
muspostbosstrack
=
((
UINT16
)
i
-
1
);
header
->
muspostbosstrack
=
((
UINT16
)
i
-
1
);
else
if
(
fastcmp
(
word
,
"MUSICPOSTBOSSPOS"
))
map
header
info
[
num
-
1
]
->
muspostbosspos
=
(
UINT32
)
get_number
(
word2
);
header
->
muspostbosspos
=
(
UINT32
)
get_number
(
word2
);
else
if
(
fastcmp
(
word
,
"MUSICPOSTBOSSFADEIN"
))
map
header
info
[
num
-
1
]
->
muspostbossfadein
=
(
UINT32
)
get_number
(
word2
);
header
->
muspostbossfadein
=
(
UINT32
)
get_number
(
word2
);
else
if
(
fastcmp
(
word
,
"FORCERESETMUSIC"
))
{
// This is a weird one because "FALSE"/"NO" could either apply to "leave to default preference" (cv_resetmusic)
...
...
@@ -1667,48 +1669,48 @@ void readlevelheader(MYFILE *f, INT32 num)
if
(
i
>=
-
1
&&
i
<=
1
)
// -1 to force off, 1 to force on, 0 to honor default.
// This behavior can be disabled with cv_resetmusicbyheader
map
header
info
[
num
-
1
]
->
musforcereset
=
(
SINT8
)
i
;
header
->
musforcereset
=
(
SINT8
)
i
;
else
deh_warning
(
"Level header %d: invalid forceresetmusic option %d"
,
num
,
i
);
}
else
if
(
fastcmp
(
word
,
"FORCECHARACTER"
))
{
strlcpy
(
map
header
info
[
num
-
1
]
->
forcecharacter
,
word2
,
SKINNAMESIZE
+
1
);
strlwr
(
map
header
info
[
num
-
1
]
->
forcecharacter
);
// skin names are lowercase
strlcpy
(
header
->
forcecharacter
,
word2
,
SKINNAMESIZE
+
1
);
strlwr
(
header
->
forcecharacter
);
// skin names are lowercase
}
else
if
(
fastcmp
(
word
,
"WEATHER"
))
map
header
info
[
num
-
1
]
->
weather
=
(
UINT8
)
get_number
(
word2
);
header
->
weather
=
(
UINT8
)
get_number
(
word2
);
else
if
(
fastcmp
(
word
,
"SKYNUM"
))
map
header
info
[
num
-
1
]
->
skynum
=
(
INT16
)
i
;
header
->
skynum
=
(
INT16
)
i
;
else
if
(
fastcmp
(
word
,
"INTERSCREEN"
))
strncpy
(
map
header
info
[
num
-
1
]
->
interscreen
,
word2
,
sizeof
(
map
header
info
[
num
-
1
]
->
interscreen
)
-
1
);
strncpy
(
header
->
interscreen
,
word2
,
sizeof
(
header
->
interscreen
)
-
1
);
else
if
(
fastcmp
(
word
,
"PRECUTSCENENUM"
))
map
header
info
[
num
-
1
]
->
precutscenenum
=
(
UINT8
)
i
;
header
->
precutscenenum
=
(
UINT8
)
i
;
else
if
(
fastcmp
(
word
,
"CUTSCENENUM"
))
map
header
info
[
num
-
1
]
->
cutscenenum
=
(
UINT8
)
i
;
header
->
cutscenenum
=
(
UINT8
)
i
;
else
if
(
fastcmp
(
word
,
"COUNTDOWN"
))
map
header
info
[
num
-
1
]
->
countdown
=
(
INT16
)
i
;
header
->
countdown
=
(
INT16
)
i
;
else
if
(
fastcmp
(
word
,
"PALETTE"
))
map
header
info
[
num
-
1
]
->
palette
=
(
UINT16
)
i
;
header
->
palette
=
(
UINT16
)
i
;
else
if
(
fastcmp
(
word
,
"NUMLAPS"
))
map
header
info
[
num
-
1
]
->
numlaps
=
(
UINT8
)
i
;
header
->
numlaps
=
(
UINT8
)
i
;
else
if
(
fastcmp
(
word
,
"UNLOCKABLE"
))
{
if
(
i
>=
0
&&
i
<=
MAXUNLOCKABLES
)
// 0 for no unlock required, anything else requires something
map
header
info
[
num
-
1
]
->
unlockrequired
=
(
SINT8
)
i
-
1
;
header
->
unlockrequired
=
(
SINT8
)
i
-
1
;
else
deh_warning
(
"Level header %d: invalid unlockable number %d"
,
num
,
i
);
}
else
if
(
fastcmp
(
word
,
"LEVELSELECT"
))
map
header
info
[
num
-
1
]
->
levelselect
=
(
UINT8
)
i
;
header
->
levelselect
=
(
UINT8
)
i
;
else
if
(
fastcmp
(
word
,
"SKYBOXSCALE"
))
map
header
info
[
num
-
1
]
->
skybox_scalex
=
map
header
info
[
num
-
1
]
->
skybox_scaley
=
map
header
info
[
num
-
1
]
->
skybox_scalez
=
(
INT16
)
i
;
header
->
skybox_scalex
=
header
->
skybox_scaley
=
header
->
skybox_scalez
=
(
INT16
)
i
;
else
if
(
fastcmp
(
word
,
"SKYBOXSCALEX"
))
map
header
info
[
num
-
1
]
->
skybox_scalex
=
(
INT16
)
i
;
header
->
skybox_scalex
=
(
INT16
)
i
;
else
if
(
fastcmp
(
word
,
"SKYBOXSCALEY"
))
map
header
info
[
num
-
1
]
->
skybox_scaley
=
(
INT16
)
i
;
header
->
skybox_scaley
=
(
INT16
)
i
;
else
if
(
fastcmp
(
word
,
"SKYBOXSCALEZ"
))
map
header
info
[
num
-
1
]
->
skybox_scalez
=
(
INT16
)
i
;
header
->
skybox_scalez
=
(
INT16
)
i
;
else
if
(
fastcmp
(
word
,
"BONUSTYPE"
))
{
...
...
@@ -1720,7 +1722,7 @@ void readlevelheader(MYFILE *f, INT32 num)
else
if
(
fastcmp
(
word2
,
"NIGHTSLINK"
))
i
=
4
;
if
(
i
>=
-
1
&&
i
<=
4
)
// -1 for no bonus. Max is 4.
map
header
info
[
num
-
1
]
->
bonustype
=
(
SINT8
)
i
;
header
->
bonustype
=
(
SINT8
)
i
;
else
deh_warning
(
"Level header %d: invalid bonus type number %d"
,
num
,
i
);
}
...
...
@@ -1728,104 +1730,104 @@ void readlevelheader(MYFILE *f, INT32 num)
// Title card
else
if
(
fastcmp
(
word
,
"TITLECARDZIGZAG"
))
{
deh_strlcpy
(
map
header
info
[
num
-
1
]
->
ltzzpatch
,
word2
,
sizeof
(
map
header
info
[
num
-
1
]
->
ltzzpatch
),
va
(
"Level header %d: title card zigzag patch name"
,
num
));
deh_strlcpy
(
header
->
ltzzpatch
,
word2
,
sizeof
(
header
->
ltzzpatch
),
va
(
"Level header %d: title card zigzag patch name"
,
num
));
}
else
if
(
fastcmp
(
word
,
"TITLECARDZIGZAGTEXT"
))
{
deh_strlcpy
(
map
header
info
[
num
-
1
]
->
ltzztext
,
word2
,
sizeof
(
map
header
info
[
num
-
1
]
->
ltzztext
),
va
(
"Level header %d: title card zigzag text patch name"
,
num
));
deh_strlcpy
(
header
->
ltzztext
,
word2
,
sizeof
(
header
->
ltzztext
),
va
(
"Level header %d: title card zigzag text patch name"
,
num
));
}
else
if
(
fastcmp
(
word
,
"TITLECARDACTDIAMOND"
))
{
deh_strlcpy
(
map
header
info
[
num
-
1
]
->
ltactdiamond
,
word2
,
sizeof
(
map
header
info
[
num
-
1
]
->
ltactdiamond
),
va
(
"Level header %d: title card act diamond patch name"
,
num
));
deh_strlcpy
(
header
->
ltactdiamond
,
word2
,
sizeof
(
header
->
ltactdiamond
),
va
(
"Level header %d: title card act diamond patch name"
,
num
));
}
else
if
(
fastcmp
(
word
,
"MAXBONUSLIVES"
))
map
header
info
[
num
-
1
]
->
maxbonuslives
=
(
SINT8
)
i
;
header
->
maxbonuslives
=
(
SINT8
)
i
;
else
if
(
fastcmp
(
word
,
"LEVELFLAGS"
))
map
header
info
[
num
-
1
]
->
levelflags
=
(
UINT16
)
i
;
header
->
levelflags
=
(
UINT16
)
i
;
else
if
(
fastcmp
(
word
,
"MENUFLAGS"
))
map
header
info
[
num
-
1
]
->
menuflags
=
(
UINT8
)
i
;
header
->
menuflags
=
(
UINT8
)
i
;
// Individual triggers for level flags, for ease of use (and 2.0 compatibility)
else
if
(
fastcmp
(
word
,
"SCRIPTISFILE"
))
{
if
(
i
||
word2
[
0
]
==
'T'
||
word2
[
0
]
==
'Y'
)
map
header
info
[
num
-
1
]
->
levelflags
|=
LF_SCRIPTISFILE
;
header
->
levelflags
|=
LF_SCRIPTISFILE
;
else
map
header
info
[
num
-
1
]
->
levelflags
&=
~
LF_SCRIPTISFILE
;
header
->
levelflags
&=
~
LF_SCRIPTISFILE
;
}
else
if
(
fastcmp
(
word
,
"SPEEDMUSIC"
))
{
if
(
i
||
word2
[
0
]
==
'T'
||
word2
[
0
]
==
'Y'
)
map
header
info
[
num
-
1
]
->
levelflags
|=
LF_SPEEDMUSIC
;
header
->
levelflags
|=
LF_SPEEDMUSIC
;
else
map
header
info
[
num
-
1
]
->
levelflags
&=
~
LF_SPEEDMUSIC
;
header
->
levelflags
&=
~
LF_SPEEDMUSIC
;
}
else
if
(
fastcmp
(
word
,
"NOSSMUSIC"
))
{
if
(
i
||
word2
[
0
]
==
'T'
||
word2
[
0
]
==
'Y'
)
map
header
info
[
num
-
1
]
->
levelflags
|=
LF_NOSSMUSIC
;
header
->
levelflags
|=
LF_NOSSMUSIC
;
else
map
header
info
[
num
-
1
]
->
levelflags
&=
~
LF_NOSSMUSIC
;
header
->
levelflags
&=
~
LF_NOSSMUSIC
;
}
else
if
(
fastcmp
(
word
,
"NORELOAD"
))
{
if
(
i
||
word2
[
0
]
==
'T'
||
word2
[
0
]
==
'Y'
)
map
header
info
[
num
-
1
]
->
levelflags
|=
LF_NORELOAD
;
header
->
levelflags
|=
LF_NORELOAD
;
else
map
header
info
[
num
-
1
]
->
levelflags
&=
~
LF_NORELOAD
;
header
->
levelflags
&=
~
LF_NORELOAD
;
}
else
if
(
fastcmp
(
word
,
"NOZONE"
))
{
if
(
i
||
word2
[
0
]
==
'T'
||
word2
[
0
]
==
'Y'
)
map
header
info
[
num
-
1
]
->
levelflags
|=
LF_NOZONE
;
header
->
levelflags
|=
LF_NOZONE
;
else
map
header
info
[
num
-
1
]
->
levelflags
&=
~
LF_NOZONE
;
header
->
levelflags
&=
~
LF_NOZONE
;
}
else
if
(
fastcmp
(
word
,
"SAVEGAME"
))
{
if
(
i
||
word2
[
0
]
==
'T'
||
word2
[
0
]
==
'Y'
)
map
header
info
[
num
-
1
]
->
levelflags
|=
LF_SAVEGAME
;
header
->
levelflags
|=
LF_SAVEGAME
;
else
map
header
info
[
num
-
1
]
->
levelflags
&=
~
LF_SAVEGAME
;
header
->
levelflags
&=
~
LF_SAVEGAME
;
}
else
if
(
fastcmp
(
word
,
"MIXNIGHTSCOUNTDOWN"
))
{
if
(
i
||
word2
[
0
]
==
'T'
||
word2
[
0
]
==
'Y'
)
map
header
info
[
num
-
1
]
->
levelflags
|=
LF_MIXNIGHTSCOUNTDOWN
;
header
->
levelflags
|=
LF_MIXNIGHTSCOUNTDOWN
;
else
map
header
info
[
num
-
1
]
->
levelflags
&=
~
LF_MIXNIGHTSCOUNTDOWN
;
header
->
levelflags
&=
~
LF_MIXNIGHTSCOUNTDOWN
;
}
else
if
(
fastcmp
(
word
,
"WARNINGTITLE"
))
{
if
(
i
||
word2
[
0
]
==
'T'
||
word2
[
0
]
==
'Y'
)
map
header
info
[
num
-
1
]
->
levelflags
|=
LF_WARNINGTITLE
;
header
->
levelflags
|=
LF_WARNINGTITLE
;
else
map
header
info
[
num
-
1
]
->
levelflags
&=
~
LF_WARNINGTITLE
;
header
->
levelflags
&=
~
LF_WARNINGTITLE
;
}
else
if
(
fastcmp
(
word
,
"NOTITLECARD"
))
{
if
(
i
||
word2
[
0
]
==
'T'
||
word2
[
0
]
==
'Y'
)
map
header
info
[
num
-
1
]
->
levelflags
|=
LF_NOTITLECARD
;
header
->
levelflags
|=
LF_NOTITLECARD
;
else
map
header
info
[
num
-
1
]
->
levelflags
&=
~
LF_NOTITLECARD
;
header
->
levelflags
&=
~
LF_NOTITLECARD
;
}
else
if
(
fastcmp
(
word
,
"SHOWTITLECARDFOR"
))
{
map
header
info
[
num
-
1
]
->
levelflags
|=
LF_NOTITLECARD
;
header
->
levelflags
|=
LF_NOTITLECARD
;
tmp
=
strtok
(
word2
,
","
);
do
{
if
(
fastcmp
(
tmp
,
"FIRST"
))
map
header
info
[
num
-
1
]
->
levelflags
&=
~
LF_NOTITLECARDFIRST
;
header
->
levelflags
&=
~
LF_NOTITLECARDFIRST
;
else
if
(
fastcmp
(
tmp
,
"RESPAWN"
))
map
header
info
[
num
-
1
]
->
levelflags
&=
~
LF_NOTITLECARDRESPAWN
;
header
->
levelflags
&=
~
LF_NOTITLECARDRESPAWN
;
else
if
(
fastcmp
(
tmp
,
"RECORDATTACK"
))
map
header
info
[
num
-
1
]
->
levelflags
&=
~
LF_NOTITLECARDRECORDATTACK
;
header
->
levelflags
&=
~
LF_NOTITLECARDRECORDATTACK
;
else
if
(
fastcmp
(
tmp
,
"ALL"
))
map
header
info
[
num
-
1
]
->
levelflags
&=
~
LF_NOTITLECARD
;
header
->
levelflags
&=
~
LF_NOTITLECARD
;
else
if
(
!
fastcmp
(
tmp
,
"NONE"
))
deh_warning
(
"Level header %d: unknown titlecard show option %s
\n
"
,
num
,
tmp
);
...
...
@@ -1836,53 +1838,53 @@ void readlevelheader(MYFILE *f, INT32 num)
else
if
(
fastcmp
(
word
,
"HIDDEN"
))
{
if
(
i
||
word2
[
0
]
==
'T'
||
word2
[
0
]
==
'Y'
)
map
header
info
[
num
-
1
]
->
menuflags
|=
LF2_HIDEINMENU
;
header
->
menuflags
|=
LF2_HIDEINMENU
;
else
map
header
info
[
num
-
1
]
->
menuflags
&=
~
LF2_HIDEINMENU
;
header
->
menuflags
&=
~
LF2_HIDEINMENU
;
}
else
if
(
fastcmp
(
word
,
"HIDEINSTATS"
))
{
if
(
i
||
word2
[
0
]
==
'T'
||
word2
[
0
]
==
'Y'
)
map
header
info
[
num
-
1
]
->
menuflags
|=
LF2_HIDEINSTATS
;
header
->
menuflags
|=
LF2_HIDEINSTATS
;
else
map
header
info
[
num
-
1
]
->
menuflags
&=
~
LF2_HIDEINSTATS
;
header
->
menuflags
&=
~
LF2_HIDEINSTATS
;
}
else
if
(
fastcmp
(
word
,
"RECORDATTACK"
)
||
fastcmp
(
word
,
"TIMEATTACK"
))
{
// TIMEATTACK is an accepted alias
if
(
i
||
word2
[
0
]
==
'T'
||
word2
[
0
]
==
'Y'
)
map
header
info
[
num
-
1
]
->
menuflags
|=
LF2_RECORDATTACK
;
header
->
menuflags
|=
LF2_RECORDATTACK
;
else
map
header
info
[
num
-
1
]
->
menuflags
&=
~
LF2_RECORDATTACK
;
header
->
menuflags
&=
~
LF2_RECORDATTACK
;
}
else
if
(
fastcmp
(
word
,
"NIGHTSATTACK"
))
{
if
(
i
||
word2
[
0
]
==
'T'
||
word2
[
0
]
==
'Y'
)
map
header
info
[
num
-
1
]
->
menuflags
|=
LF2_NIGHTSATTACK
;
header
->
menuflags
|=
LF2_NIGHTSATTACK
;
else
map
header
info
[
num
-
1
]
->
menuflags
&=
LF2_NIGHTSATTACK
;
header
->
menuflags
&=
LF2_NIGHTSATTACK
;
}
else
if
(
fastcmp
(
word
,
"NOVISITNEEDED"
))
{
if
(
i
||
word2
[
0
]
==
'T'
||
word2
[
0
]
==
'Y'
)
map
header
info
[
num
-
1
]
->
menuflags
|=
LF2_NOVISITNEEDED
;
header
->
menuflags
|=
LF2_NOVISITNEEDED
;
else
map
header
info
[
num
-
1
]
->
menuflags
&=
~
LF2_NOVISITNEEDED
;
header
->
menuflags
&=
~
LF2_NOVISITNEEDED
;
}
else
if
(
fastcmp
(
word
,
"WIDEICON"
))
{
if
(
i
||
word2
[
0
]
==
'T'
||
word2
[
0
]
==
'Y'
)
map
header
info
[
num
-
1
]
->
menuflags
|=
LF2_WIDEICON
;
header
->
menuflags
|=
LF2_WIDEICON
;
else
map
header
info
[
num
-
1
]
->
menuflags
&=
~
LF2_WIDEICON
;
header
->
menuflags
&=
~
LF2_WIDEICON
;
}
else
if
(
fastcmp
(
word
,
"STARTRINGS"
))
map
header
info
[
num
-
1
]
->
startrings
=
(
UINT16
)
i
;
header
->
startrings
=
(
UINT16
)
i
;
else
if
(
fastcmp
(
word
,
"SPECIALSTAGETIME"
))
map
header
info
[
num
-
1
]
->
sstimer
=
i
;
header
->
sstimer
=
i
;
else
if
(
fastcmp
(
word
,
"SPECIALSTAGESPHERES"
))
map
header
info
[
num
-
1
]
->
ssspheres
=
i
;
header
->
ssspheres
=
i
;
else
if
(
fastcmp
(
word
,
"GRAVITY"
))
map
header
info
[
num
-
1
]
->
gravity
=
FLOAT_TO_FIXED
(
atof
(
word2
));
header
->
gravity
=
FLOAT_TO_FIXED
(
atof
(
word2
));
else
deh_warning
(
"Level header %d: unknown word '%s'"
,
num
,
word
);
}
...
...
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