Fix taking ARRAY_SIZE of PlayerSelfObituaries (not PlayerObituaries!)

Also add two static assertions checking that the obituary quotes don't go
out of the MAXQUOTES bound. BUILD_LUNATIC.

git-svn-id: https://svn.eduke32.com/eduke32@4391 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
helixhorned 2014-03-22 17:02:21 +00:00
parent cf14fef6c5
commit 2f11c7d802

View file

@ -2351,6 +2351,8 @@ LUNATIC_EXTERN void C_DefineProjectile(int32_t j, int32_t what, int32_t val)
int32_t C_AllocQuote(int32_t qnum) int32_t C_AllocQuote(int32_t qnum)
{ {
Bassert((unsigned)qnum < MAXQUOTES);
if (ScriptQuotes[qnum] == NULL) if (ScriptQuotes[qnum] == NULL)
{ {
ScriptQuotes[qnum] = (char *)Bcalloc(MAXQUOTELEN,sizeof(uint8_t)); ScriptQuotes[qnum] = (char *)Bcalloc(MAXQUOTELEN,sizeof(uint8_t));
@ -2448,6 +2450,9 @@ void C_InitQuotes(void)
"^02%s^02 bled out", "^02%s^02 bled out",
}; };
EDUKE32_STATIC_ASSERT(OBITQUOTEINDEX + ARRAY_SIZE(PlayerObituaries)-1 < MAXQUOTES);
EDUKE32_STATIC_ASSERT(SUICIDEQUOTEINDEX + ARRAY_SIZE(PlayerSelfObituaries)-1 < MAXQUOTES);
g_numObituaries = ARRAY_SIZE(PlayerObituaries); g_numObituaries = ARRAY_SIZE(PlayerObituaries);
for (i=g_numObituaries-1; i>=0; i--) for (i=g_numObituaries-1; i>=0; i--)
{ {
@ -2455,7 +2460,7 @@ void C_InitQuotes(void)
Bstrcpy(ScriptQuotes[i+OBITQUOTEINDEX],PlayerObituaries[i]); Bstrcpy(ScriptQuotes[i+OBITQUOTEINDEX],PlayerObituaries[i]);
} }
g_numSelfObituaries = ARRAY_SIZE(PlayerObituaries); g_numSelfObituaries = ARRAY_SIZE(PlayerSelfObituaries);
for (i=g_numSelfObituaries-1; i>=0; i--) for (i=g_numSelfObituaries-1; i>=0; i--)
{ {
if (C_AllocQuote(i+SUICIDEQUOTEINDEX)) if (C_AllocQuote(i+SUICIDEQUOTEINDEX))