📄 gamedef.c
字号:
actorscrptr[*scriptptr] = parsing_actor;
actortype[*scriptptr] = j;
for(j=0;j<4;j++)
{
*(parsing_actor+j) = 0;
if(j == 3)
{
j = 0;
while(keyword() == -1)
{
transnum();
scriptptr--;
j |= *scriptptr;
}
*scriptptr = j;
scriptptr++;
break;
}
else
{
if(keyword() >= 0)
{
scriptptr += (4-j);
break;
}
transnum();
*(parsing_actor+j) = *(scriptptr-1);
}
}
checking_ifelse = 0;
return 0;
case 11:
case 13:
case 25:
case 31:
case 40:
case 52:
case 69:
case 74:
case 77:
case 80:
case 86:
case 88:
case 68:
case 100:
case 101:
case 102:
case 103:
case 105:
case 110:
transnum();
return 0;
case 2:
case 23:
case 28:
case 99:
case 37:
case 48:
case 58:
transnum();
transnum();
break;
case 50:
transnum();
transnum();
transnum();
transnum();
transnum();
break;
case 10:
if( checking_ifelse )
{
checking_ifelse--;
tempscrptr = scriptptr;
scriptptr++; //Leave a spot for the fail location
parsecommand();
*tempscrptr = (long) scriptptr;
}
else
{
scriptptr--;
error++;
printf(" * ERROR!(L%ld) Found 'else' with no 'if'.\n",line_number);
}
return 0;
case 75:
transnum();
case 3:
case 8:
case 9:
case 21:
case 33:
case 34:
case 35:
case 41:
case 46:
case 53:
case 56:
case 59:
case 62:
case 72:
case 73:
// case 74:
case 78:
case 85:
case 94:
case 111:
transnum();
case 43:
case 44:
case 49:
case 5:
case 6:
case 27:
case 26:
case 45:
case 51:
case 63:
case 64:
case 65:
case 67:
case 70:
case 71:
case 81:
case 82:
case 90:
case 91:
case 109:
if(tw == 51)
{
j = 0;
do
{
transnum();
scriptptr--;
j |= *scriptptr;
}
while(keyword() == -1);
*scriptptr = j;
scriptptr++;
}
tempscrptr = scriptptr;
scriptptr++; //Leave a spot for the fail location
do
{
j = keyword();
if(j == 20 || j == 39)
parsecommand();
} while(j == 20 || j == 39);
parsecommand();
*tempscrptr = (long) scriptptr;
checking_ifelse++;
return 0;
case 29:
num_squigilly_brackets++;
do
done = parsecommand();
while( done == 0 );
return 0;
case 30:
num_squigilly_brackets--;
if( num_squigilly_brackets < 0 )
{
printf(" * ERROR!(L%ld) Found more '}' than '{'.\n",line_number);
error++;
}
return 1;
case 76:
scriptptr--;
j = 0;
while( *textptr != 0x0a )
{
betaname[j] = *textptr;
j++; textptr++;
}
betaname[j] = 0;
return 0;
case 20:
scriptptr--; //Negate the rem
while( *textptr != 0x0a )
textptr++;
// line_number++;
return 0;
case 107:
scriptptr--;
transnum();
scriptptr--;
j = *scriptptr;
while( *textptr == ' ' ) textptr++;
i = 0;
while( *textptr != 0x0a )
{
volume_names[j][i] = toupper(*textptr);
textptr++,i++;
if(i >= 32)
{
printf(" * ERROR!(L%ld) Volume name exceeds character size limit of 32.\n",line_number);
error++;
while( *textptr != 0x0a ) textptr++;
break;
}
}
volume_names[j][i-1] = '\0';
return 0;
case 108:
scriptptr--;
transnum();
scriptptr--;
j = *scriptptr;
while( *textptr == ' ' ) textptr++;
i = 0;
while( *textptr != 0x0a )
{
skill_names[j][i] = toupper(*textptr);
textptr++,i++;
if(i >= 32)
{
printf(" * ERROR!(L%ld) Skill name exceeds character size limit of 32.\n",line_number);
error++;
while( *textptr != 0x0a ) textptr++;
break;
}
}
skill_names[j][i-1] = '\0';
return 0;
case 0:
scriptptr--;
transnum();
scriptptr--;
j = *scriptptr;
transnum();
scriptptr--;
k = *scriptptr;
while( *textptr == ' ' ) textptr++;
i = 0;
while( *textptr != ' ' && *textptr != 0x0a )
{
level_file_names[j*11+k][i] = *textptr;
textptr++,i++;
if(i > 127)
{
printf(" * ERROR!(L%ld) Level file name exceeds character size limit of 128.\n",line_number);
error++;
while( *textptr != ' ') textptr++;
break;
}
}
level_names[j*11+k][i-1] = '\0';
while( *textptr == ' ' ) textptr++;
partime[j*11+k] =
(((*(textptr+0)-'0')*10+(*(textptr+1)-'0'))*26*60)+
(((*(textptr+3)-'0')*10+(*(textptr+4)-'0'))*26);
textptr += 5;
while( *textptr == ' ' ) textptr++;
designertime[j*11+k] =
(((*(textptr+0)-'0')*10+(*(textptr+1)-'0'))*26*60)+
(((*(textptr+3)-'0')*10+(*(textptr+4)-'0'))*26);
textptr += 5;
while( *textptr == ' ' ) textptr++;
i = 0;
while( *textptr != 0x0a )
{
level_names[j*11+k][i] = toupper(*textptr);
textptr++,i++;
if(i >= 32)
{
printf(" * ERROR!(L%ld) Level name exceeds character size limit of 32.\n",line_number);
error++;
while( *textptr != 0x0a ) textptr++;
break;
}
}
level_names[j*11+k][i-1] = '\0';
return 0;
case 79:
scriptptr--;
transnum();
k = *(scriptptr-1);
if(k >= NUMOFFIRSTTIMEACTIVE)
{
printf(" * ERROR!(L%ld) Quote amount exceeds limit of %ld characters.\n",line_number,NUMOFFIRSTTIMEACTIVE);
error++;
}
scriptptr--;
i = 0;
while( *textptr == ' ' )
textptr++;
while( *textptr != 0x0a )
{
fta_quotes[k][i] = *textptr;
textptr++,i++;
if(i >= 64)
{
printf(" * ERROR!(L%ld) Quote exceeds character size limit of 64.\n",line_number);
error++;
while( *textptr != 0x0a ) textptr++;
break;
}
}
fta_quotes[k][i] = '\0';
return 0;
case 57:
scriptptr--;
transnum();
k = *(scriptptr-1);
if(k >= NUM_SOUNDS)
{
printf(" * ERROR!(L%ld) Exceeded sound limit of %ld.\n",line_number,NUM_SOUNDS);
error++;
}
scriptptr--;
i = 0;
while( *textptr == ' ')
textptr++;
while( *textptr != ' ' )
{
sounds[k][i] = *textptr;
textptr++,i++;
if(i >= 13)
{
puts(sounds[k]);
printf(" * ERROR!(L%ld) Sound filename exceeded limit of 13 characters.\n",line_number);
error++;
while( *textptr != ' ' ) textptr++;
break;
}
}
sounds[k][i] = '\0';
transnum();
soundps[k] = *(scriptptr-1);
scriptptr--;
transnum();
soundpe[k] = *(scriptptr-1);
scriptptr--;
transnum();
soundpr[k] = *(scriptptr-1);
scriptptr--;
transnum();
soundm[k] = *(scriptptr-1);
scriptptr--;
transnum();
soundvo[k] = *(scriptptr-1);
scriptptr--;
return 0;
case 4:
if( parsing_actor == 0 )
{
printf(" * ERROR!(L%ld) Found 'enda' without defining 'actor'.\n",line_number);
error++;
}
// else
{
if( num_squigilly_brackets > 0 )
{
printf(" * ERROR!(L%ld) Found more '{' than '}' before 'enda'.\n",line_number);
error++;
}
parsing_actor = 0;
}
return 0;
case 12:
case 16:
case 84:
// case 21:
case 22: //KILLIT
case 36:
case 38:
case 42:
case 47:
case 61:
case 66:
case 83:
case 95:
case 96:
case 97:
case 104:
case 106:
return 0;
case 60:
j = 0;
while(j < 30)
{
transnum();
scriptptr--;
switch(j)
{
case 0:
ud.const_visibility = *scriptptr;
break;
case 1:
impact_damage = *scriptptr;
break;
case 2:
max_player_health = *scriptptr;
break;
case 3:
max_armour_amount = *scriptptr;
break;
case 4:
respawnactortime = *scriptptr;break;
case 5:
respawnitemtime = *scriptptr;break;
case 6:
dukefriction = *scriptptr;break;
case 7:
gc = *scriptptr;break;
case 8:rpgblastradius = *scriptptr;break;
case 9:pipebombblastradius = *scriptptr;break;
case 10:shrinkerblastradius = *scriptptr; break;
case 11:tripbombblastradius = *scriptptr; break;
case 12:morterblastradius = *scriptptr;break;
case 13:bouncemineblastradius = *scriptptr;break;
case 14:seenineblastradius = *scriptptr;break;
case 15:
case 16:
case 17:
case 18:
case 19:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -