13554 lines
202 KiB
NASM
13554 lines
202 KiB
NASM
data
|
|
export gDuelExit
|
|
align 4
|
|
LABELV gDuelExit
|
|
byte 4 0
|
|
export gDuelist1
|
|
align 4
|
|
LABELV gDuelist1
|
|
byte 4 -1
|
|
export gDuelist2
|
|
align 4
|
|
LABELV gDuelist2
|
|
byte 4 -1
|
|
align 4
|
|
LABELV gameCvarTable
|
|
address g_cheats
|
|
address $79
|
|
address $80
|
|
byte 4 0
|
|
byte 4 0
|
|
byte 4 0
|
|
skip 4
|
|
byte 4 0
|
|
address $81
|
|
address $82
|
|
byte 4 68
|
|
byte 4 0
|
|
byte 4 0
|
|
skip 4
|
|
byte 4 0
|
|
address $83
|
|
address $84
|
|
byte 4 64
|
|
byte 4 0
|
|
byte 4 0
|
|
skip 4
|
|
address g_restarted
|
|
address $85
|
|
address $86
|
|
byte 4 64
|
|
byte 4 0
|
|
byte 4 0
|
|
skip 4
|
|
byte 4 0
|
|
address $87
|
|
address $80
|
|
byte 4 68
|
|
byte 4 0
|
|
byte 4 0
|
|
skip 4
|
|
address g_gametype
|
|
address $88
|
|
address $86
|
|
byte 4 38
|
|
byte 4 0
|
|
byte 4 0
|
|
skip 4
|
|
address g_MaxHolocronCarry
|
|
address $89
|
|
address $90
|
|
byte 4 38
|
|
byte 4 0
|
|
byte 4 0
|
|
skip 4
|
|
address g_maxclients
|
|
address $91
|
|
address $92
|
|
byte 4 37
|
|
byte 4 0
|
|
byte 4 0
|
|
skip 4
|
|
address g_maxGameClients
|
|
address $93
|
|
address $86
|
|
byte 4 37
|
|
byte 4 0
|
|
byte 4 0
|
|
skip 4
|
|
address g_ff_objectives
|
|
address $94
|
|
address $86
|
|
byte 4 1024
|
|
byte 4 0
|
|
byte 4 1
|
|
skip 4
|
|
address g_autoMapCycle
|
|
address $95
|
|
address $86
|
|
byte 4 1025
|
|
byte 4 0
|
|
byte 4 1
|
|
skip 4
|
|
address g_dmflags
|
|
address $96
|
|
address $86
|
|
byte 4 5
|
|
byte 4 0
|
|
byte 4 1
|
|
skip 4
|
|
address g_maxForceRank
|
|
address $97
|
|
address $98
|
|
byte 4 39
|
|
byte 4 0
|
|
byte 4 0
|
|
skip 4
|
|
address g_forceBasedTeams
|
|
address $99
|
|
address $86
|
|
byte 4 39
|
|
byte 4 0
|
|
byte 4 0
|
|
skip 4
|
|
address g_privateDuel
|
|
address $100
|
|
address $101
|
|
byte 4 5
|
|
byte 4 0
|
|
byte 4 1
|
|
skip 4
|
|
address g_saberLocking
|
|
address $102
|
|
address $101
|
|
byte 4 5
|
|
byte 4 0
|
|
byte 4 1
|
|
skip 4
|
|
address g_forceRegenTime
|
|
address $103
|
|
address $104
|
|
byte 4 5
|
|
byte 4 0
|
|
byte 4 1
|
|
skip 4
|
|
address g_spawnInvulnerability
|
|
address $105
|
|
address $106
|
|
byte 4 1
|
|
byte 4 0
|
|
byte 4 1
|
|
skip 4
|
|
address g_forcePowerDisable
|
|
address $107
|
|
address $86
|
|
byte 4 37
|
|
byte 4 0
|
|
byte 4 1
|
|
skip 4
|
|
address g_weaponDisable
|
|
address $108
|
|
address $86
|
|
byte 4 37
|
|
byte 4 0
|
|
byte 4 1
|
|
skip 4
|
|
address g_duelWeaponDisable
|
|
address $109
|
|
address $101
|
|
byte 4 37
|
|
byte 4 0
|
|
byte 4 1
|
|
skip 4
|
|
address g_fraglimit
|
|
address $110
|
|
address $111
|
|
byte 4 1029
|
|
byte 4 0
|
|
byte 4 1
|
|
skip 4
|
|
address g_duel_fraglimit
|
|
address $112
|
|
address $113
|
|
byte 4 1029
|
|
byte 4 0
|
|
byte 4 1
|
|
skip 4
|
|
address g_timelimit
|
|
address $114
|
|
address $86
|
|
byte 4 1029
|
|
byte 4 0
|
|
byte 4 1
|
|
skip 4
|
|
address g_capturelimit
|
|
address $115
|
|
address $92
|
|
byte 4 1029
|
|
byte 4 0
|
|
byte 4 1
|
|
skip 4
|
|
address g_synchronousClients
|
|
address $116
|
|
address $86
|
|
byte 4 8
|
|
byte 4 0
|
|
byte 4 0
|
|
skip 4
|
|
address g_saberInterpolate
|
|
address $117
|
|
address $101
|
|
byte 4 1
|
|
byte 4 0
|
|
byte 4 1
|
|
skip 4
|
|
address g_friendlyFire
|
|
address $118
|
|
address $86
|
|
byte 4 1
|
|
byte 4 0
|
|
byte 4 1
|
|
skip 4
|
|
address g_friendlySaber
|
|
address $119
|
|
address $86
|
|
byte 4 1
|
|
byte 4 0
|
|
byte 4 1
|
|
skip 4
|
|
address g_teamAutoJoin
|
|
address $120
|
|
address $86
|
|
byte 4 1
|
|
skip 12
|
|
address g_teamForceBalance
|
|
address $121
|
|
address $86
|
|
byte 4 1
|
|
skip 12
|
|
address g_warmup
|
|
address $122
|
|
address $111
|
|
byte 4 1
|
|
byte 4 0
|
|
byte 4 1
|
|
skip 4
|
|
address g_doWarmup
|
|
address $123
|
|
address $86
|
|
byte 4 0
|
|
byte 4 0
|
|
byte 4 1
|
|
skip 4
|
|
address g_log
|
|
address $124
|
|
address $125
|
|
byte 4 1
|
|
byte 4 0
|
|
byte 4 0
|
|
skip 4
|
|
address g_logSync
|
|
address $126
|
|
address $86
|
|
byte 4 1
|
|
byte 4 0
|
|
byte 4 0
|
|
skip 4
|
|
address g_statLog
|
|
address $127
|
|
address $86
|
|
byte 4 1
|
|
byte 4 0
|
|
byte 4 0
|
|
skip 4
|
|
address g_statLogFile
|
|
address $128
|
|
address $129
|
|
byte 4 1
|
|
byte 4 0
|
|
byte 4 0
|
|
skip 4
|
|
address g_password
|
|
address $130
|
|
address $80
|
|
byte 4 2
|
|
byte 4 0
|
|
byte 4 0
|
|
skip 4
|
|
address g_banIPs
|
|
address $131
|
|
address $80
|
|
byte 4 1
|
|
byte 4 0
|
|
byte 4 0
|
|
skip 4
|
|
address g_filterBan
|
|
address $132
|
|
address $101
|
|
byte 4 1
|
|
byte 4 0
|
|
byte 4 0
|
|
skip 4
|
|
address g_needpass
|
|
address $133
|
|
address $86
|
|
byte 4 68
|
|
byte 4 0
|
|
byte 4 0
|
|
skip 4
|
|
address g_dedicated
|
|
address $134
|
|
address $86
|
|
byte 4 0
|
|
byte 4 0
|
|
byte 4 0
|
|
skip 4
|
|
address g_speed
|
|
address $135
|
|
address $136
|
|
byte 4 0
|
|
byte 4 0
|
|
byte 4 1
|
|
skip 4
|
|
address g_gravity
|
|
address $137
|
|
address $138
|
|
byte 4 0
|
|
byte 4 0
|
|
byte 4 1
|
|
skip 4
|
|
address g_knockback
|
|
address $139
|
|
address $140
|
|
byte 4 0
|
|
byte 4 0
|
|
byte 4 1
|
|
skip 4
|
|
address g_quadfactor
|
|
address $141
|
|
address $90
|
|
byte 4 0
|
|
byte 4 0
|
|
byte 4 1
|
|
skip 4
|
|
address g_weaponRespawn
|
|
address $142
|
|
address $143
|
|
byte 4 0
|
|
byte 4 0
|
|
byte 4 1
|
|
skip 4
|
|
address g_weaponTeamRespawn
|
|
address $144
|
|
address $143
|
|
byte 4 0
|
|
byte 4 0
|
|
byte 4 1
|
|
skip 4
|
|
address g_adaptRespawn
|
|
address $145
|
|
address $101
|
|
byte 4 0
|
|
byte 4 0
|
|
byte 4 1
|
|
skip 4
|
|
address g_forcerespawn
|
|
address $146
|
|
address $147
|
|
byte 4 0
|
|
byte 4 0
|
|
byte 4 1
|
|
skip 4
|
|
address g_inactivity
|
|
address $148
|
|
address $86
|
|
byte 4 0
|
|
byte 4 0
|
|
byte 4 1
|
|
skip 4
|
|
address g_debugMove
|
|
address $149
|
|
address $86
|
|
byte 4 0
|
|
byte 4 0
|
|
byte 4 0
|
|
skip 4
|
|
address g_debugDamage
|
|
address $150
|
|
address $86
|
|
byte 4 0
|
|
byte 4 0
|
|
byte 4 0
|
|
skip 4
|
|
address g_debugAlloc
|
|
address $151
|
|
address $86
|
|
byte 4 0
|
|
byte 4 0
|
|
byte 4 0
|
|
skip 4
|
|
address g_motd
|
|
address $152
|
|
address $80
|
|
byte 4 0
|
|
byte 4 0
|
|
byte 4 0
|
|
skip 4
|
|
address g_blood
|
|
address $153
|
|
address $101
|
|
byte 4 0
|
|
byte 4 0
|
|
byte 4 0
|
|
skip 4
|
|
address g_podiumDist
|
|
address $154
|
|
address $155
|
|
byte 4 0
|
|
byte 4 0
|
|
byte 4 0
|
|
skip 4
|
|
address g_podiumDrop
|
|
address $156
|
|
address $157
|
|
byte 4 0
|
|
byte 4 0
|
|
byte 4 0
|
|
skip 4
|
|
address g_allowVote
|
|
address $158
|
|
address $101
|
|
byte 4 1
|
|
byte 4 0
|
|
byte 4 0
|
|
skip 4
|
|
address g_listEntity
|
|
address $159
|
|
address $86
|
|
byte 4 0
|
|
byte 4 0
|
|
byte 4 0
|
|
skip 4
|
|
address g_redteam
|
|
address $160
|
|
address $161
|
|
byte 4 7
|
|
byte 4 0
|
|
byte 4 1
|
|
byte 4 1
|
|
address g_blueteam
|
|
address $162
|
|
address $163
|
|
byte 4 7
|
|
byte 4 0
|
|
byte 4 1
|
|
byte 4 1
|
|
address g_singlePlayer
|
|
address $164
|
|
address $80
|
|
byte 4 0
|
|
byte 4 0
|
|
byte 4 0
|
|
byte 4 0
|
|
address g_enableDust
|
|
address $165
|
|
address $86
|
|
byte 4 0
|
|
byte 4 0
|
|
byte 4 1
|
|
byte 4 0
|
|
address g_enableBreath
|
|
address $166
|
|
address $86
|
|
byte 4 0
|
|
byte 4 0
|
|
byte 4 1
|
|
byte 4 0
|
|
address g_smoothClients
|
|
address $167
|
|
address $101
|
|
byte 4 0
|
|
byte 4 0
|
|
byte 4 0
|
|
skip 4
|
|
address pmove_fixed
|
|
address $168
|
|
address $86
|
|
byte 4 8
|
|
byte 4 0
|
|
byte 4 0
|
|
skip 4
|
|
address pmove_msec
|
|
address $169
|
|
address $92
|
|
byte 4 8
|
|
byte 4 0
|
|
byte 4 0
|
|
skip 4
|
|
address g_rankings
|
|
address $170
|
|
address $86
|
|
byte 4 0
|
|
byte 4 0
|
|
byte 4 0
|
|
skip 4
|
|
address g_dismember
|
|
address $171
|
|
address $86
|
|
byte 4 0
|
|
byte 4 0
|
|
byte 4 1
|
|
skip 4
|
|
address g_forceDodge
|
|
address $172
|
|
address $101
|
|
byte 4 0
|
|
byte 4 0
|
|
byte 4 1
|
|
skip 4
|
|
address g_timeouttospec
|
|
address $173
|
|
address $157
|
|
byte 4 1
|
|
byte 4 0
|
|
byte 4 0
|
|
skip 4
|
|
align 4
|
|
LABELV gameCvarTableSize
|
|
byte 4 72
|
|
export vmMain
|
|
code
|
|
proc vmMain 16 12
|
|
file "../g_main.c"
|
|
line 231
|
|
;1:// Copyright (C) 1999-2000 Id Software, Inc.
|
|
;2://
|
|
;3:
|
|
;4:#include "g_local.h"
|
|
;5:
|
|
;6:level_locals_t level;
|
|
;7:
|
|
;8:typedef struct {
|
|
;9: vmCvar_t *vmCvar;
|
|
;10: char *cvarName;
|
|
;11: char *defaultString;
|
|
;12: int cvarFlags;
|
|
;13: int modificationCount; // for tracking changes
|
|
;14: qboolean trackChange; // track this variable, and announce if changed
|
|
;15: qboolean teamShader; // track and if changed, update shader state
|
|
;16:} cvarTable_t;
|
|
;17:
|
|
;18:gentity_t g_entities[MAX_GENTITIES];
|
|
;19:gclient_t g_clients[MAX_CLIENTS];
|
|
;20:
|
|
;21:qboolean gDuelExit = qfalse;
|
|
;22:
|
|
;23:vmCvar_t g_gametype;
|
|
;24:vmCvar_t g_MaxHolocronCarry;
|
|
;25:vmCvar_t g_ff_objectives;
|
|
;26:vmCvar_t g_autoMapCycle;
|
|
;27:vmCvar_t g_dmflags;
|
|
;28:vmCvar_t g_maxForceRank;
|
|
;29:vmCvar_t g_forceBasedTeams;
|
|
;30:vmCvar_t g_privateDuel;
|
|
;31:vmCvar_t g_saberLocking;
|
|
;32:vmCvar_t g_forceRegenTime;
|
|
;33:vmCvar_t g_spawnInvulnerability;
|
|
;34:vmCvar_t g_forcePowerDisable;
|
|
;35:vmCvar_t g_weaponDisable;
|
|
;36:vmCvar_t g_duelWeaponDisable;
|
|
;37:vmCvar_t g_fraglimit;
|
|
;38:vmCvar_t g_duel_fraglimit;
|
|
;39:vmCvar_t g_timelimit;
|
|
;40:vmCvar_t g_capturelimit;
|
|
;41:vmCvar_t g_saberInterpolate;
|
|
;42:vmCvar_t g_friendlyFire;
|
|
;43:vmCvar_t g_friendlySaber;
|
|
;44:vmCvar_t g_password;
|
|
;45:vmCvar_t g_needpass;
|
|
;46:vmCvar_t g_maxclients;
|
|
;47:vmCvar_t g_maxGameClients;
|
|
;48:vmCvar_t g_dedicated;
|
|
;49:vmCvar_t g_speed;
|
|
;50:vmCvar_t g_gravity;
|
|
;51:vmCvar_t g_cheats;
|
|
;52:vmCvar_t g_knockback;
|
|
;53:vmCvar_t g_quadfactor;
|
|
;54:vmCvar_t g_forcerespawn;
|
|
;55:vmCvar_t g_inactivity;
|
|
;56:vmCvar_t g_debugMove;
|
|
;57:vmCvar_t g_debugDamage;
|
|
;58:vmCvar_t g_debugAlloc;
|
|
;59:vmCvar_t g_weaponRespawn;
|
|
;60:vmCvar_t g_weaponTeamRespawn;
|
|
;61:vmCvar_t g_adaptRespawn;
|
|
;62:vmCvar_t g_motd;
|
|
;63:vmCvar_t g_synchronousClients;
|
|
;64:vmCvar_t g_warmup;
|
|
;65:vmCvar_t g_doWarmup;
|
|
;66:vmCvar_t g_restarted;
|
|
;67:vmCvar_t g_log;
|
|
;68:vmCvar_t g_logSync;
|
|
;69:vmCvar_t g_statLog;
|
|
;70:vmCvar_t g_statLogFile;
|
|
;71:vmCvar_t g_blood;
|
|
;72:vmCvar_t g_podiumDist;
|
|
;73:vmCvar_t g_podiumDrop;
|
|
;74:vmCvar_t g_allowVote;
|
|
;75:vmCvar_t g_teamAutoJoin;
|
|
;76:vmCvar_t g_teamForceBalance;
|
|
;77:vmCvar_t g_banIPs;
|
|
;78:vmCvar_t g_filterBan;
|
|
;79:vmCvar_t g_debugForward;
|
|
;80:vmCvar_t g_debugRight;
|
|
;81:vmCvar_t g_debugUp;
|
|
;82:vmCvar_t g_smoothClients;
|
|
;83:vmCvar_t pmove_fixed;
|
|
;84:vmCvar_t pmove_msec;
|
|
;85:vmCvar_t g_rankings;
|
|
;86:vmCvar_t g_listEntity;
|
|
;87:vmCvar_t g_redteam;
|
|
;88:vmCvar_t g_blueteam;
|
|
;89:vmCvar_t g_singlePlayer;
|
|
;90:vmCvar_t g_enableDust;
|
|
;91:vmCvar_t g_enableBreath;
|
|
;92:vmCvar_t g_dismember;
|
|
;93:vmCvar_t g_forceDodge;
|
|
;94:vmCvar_t g_timeouttospec;
|
|
;95:
|
|
;96:int gDuelist1 = -1;
|
|
;97:int gDuelist2 = -1;
|
|
;98:
|
|
;99:// bk001129 - made static to avoid aliasing
|
|
;100:static cvarTable_t gameCvarTable[] = {
|
|
;101: // don't override the cheat state set by the system
|
|
;102: { &g_cheats, "sv_cheats", "", 0, 0, qfalse },
|
|
;103:
|
|
;104: // noset vars
|
|
;105: { NULL, "gamename", GAMEVERSION , CVAR_SERVERINFO | CVAR_ROM, 0, qfalse },
|
|
;106: { NULL, "gamedate", __DATE__ , CVAR_ROM, 0, qfalse },
|
|
;107: { &g_restarted, "g_restarted", "0", CVAR_ROM, 0, qfalse },
|
|
;108: { NULL, "sv_mapname", "", CVAR_SERVERINFO | CVAR_ROM, 0, qfalse },
|
|
;109:
|
|
;110: // latched vars
|
|
;111: { &g_gametype, "g_gametype", "0", CVAR_SERVERINFO | CVAR_USERINFO | CVAR_LATCH, 0, qfalse },
|
|
;112: { &g_MaxHolocronCarry, "g_MaxHolocronCarry", "3", CVAR_SERVERINFO | CVAR_USERINFO | CVAR_LATCH, 0, qfalse },
|
|
;113:
|
|
;114: { &g_maxclients, "sv_maxclients", "8", CVAR_SERVERINFO | CVAR_LATCH | CVAR_ARCHIVE, 0, qfalse },
|
|
;115: { &g_maxGameClients, "g_maxGameClients", "0", CVAR_SERVERINFO | CVAR_LATCH | CVAR_ARCHIVE, 0, qfalse },
|
|
;116:
|
|
;117: // change anytime vars
|
|
;118: { &g_ff_objectives, "g_ff_objectives", "0", /*CVAR_SERVERINFO |*/ CVAR_NORESTART, 0, qtrue },
|
|
;119:
|
|
;120: { &g_autoMapCycle, "g_autoMapCycle", "0", CVAR_ARCHIVE | CVAR_NORESTART, 0, qtrue },
|
|
;121: { &g_dmflags, "dmflags", "0", CVAR_SERVERINFO | CVAR_ARCHIVE, 0, qtrue },
|
|
;122:
|
|
;123: { &g_maxForceRank, "g_maxForceRank", "6", CVAR_SERVERINFO | CVAR_ARCHIVE | CVAR_USERINFO | CVAR_LATCH, 0, qfalse },
|
|
;124: { &g_forceBasedTeams, "g_forceBasedTeams", "0", CVAR_SERVERINFO | CVAR_ARCHIVE | CVAR_USERINFO | CVAR_LATCH, 0, qfalse },
|
|
;125: { &g_privateDuel, "g_privateDuel", "1", CVAR_SERVERINFO | CVAR_ARCHIVE, 0, qtrue },
|
|
;126: { &g_saberLocking, "g_saberLocking", "1", CVAR_SERVERINFO | CVAR_ARCHIVE, 0, qtrue },
|
|
;127: { &g_forceRegenTime, "g_forceRegenTime", "200", CVAR_SERVERINFO | CVAR_ARCHIVE, 0, qtrue },
|
|
;128:
|
|
;129: { &g_spawnInvulnerability, "g_spawnInvulnerability", "3000", CVAR_ARCHIVE, 0, qtrue },
|
|
;130:
|
|
;131: { &g_forcePowerDisable, "g_forcePowerDisable", "0", CVAR_SERVERINFO | CVAR_ARCHIVE | CVAR_LATCH, 0, qtrue },
|
|
;132: { &g_weaponDisable, "g_weaponDisable", "0", CVAR_SERVERINFO | CVAR_ARCHIVE | CVAR_LATCH, 0, qtrue },
|
|
;133: { &g_duelWeaponDisable, "g_duelWeaponDisable", "1", CVAR_SERVERINFO | CVAR_ARCHIVE | CVAR_LATCH, 0, qtrue },
|
|
;134:
|
|
;135: { &g_fraglimit, "fraglimit", "20", CVAR_SERVERINFO | CVAR_ARCHIVE | CVAR_NORESTART, 0, qtrue },
|
|
;136: { &g_duel_fraglimit, "duel_fraglimit", "10", CVAR_SERVERINFO | CVAR_ARCHIVE | CVAR_NORESTART, 0, qtrue },
|
|
;137: { &g_timelimit, "timelimit", "0", CVAR_SERVERINFO | CVAR_ARCHIVE | CVAR_NORESTART, 0, qtrue },
|
|
;138: { &g_capturelimit, "capturelimit", "8", CVAR_SERVERINFO | CVAR_ARCHIVE | CVAR_NORESTART, 0, qtrue },
|
|
;139:
|
|
;140: { &g_synchronousClients, "g_synchronousClients", "0", CVAR_SYSTEMINFO, 0, qfalse },
|
|
;141:
|
|
;142: { &g_saberInterpolate, "g_saberInterpolate", "1", CVAR_ARCHIVE, 0, qtrue },
|
|
;143:
|
|
;144: { &g_friendlyFire, "g_friendlyFire", "0", CVAR_ARCHIVE, 0, qtrue },
|
|
;145: { &g_friendlySaber, "g_friendlySaber", "0", CVAR_ARCHIVE, 0, qtrue },
|
|
;146:
|
|
;147: { &g_teamAutoJoin, "g_teamAutoJoin", "0", CVAR_ARCHIVE },
|
|
;148: { &g_teamForceBalance, "g_teamForceBalance", "0", CVAR_ARCHIVE },
|
|
;149:
|
|
;150: { &g_warmup, "g_warmup", "20", CVAR_ARCHIVE, 0, qtrue },
|
|
;151: { &g_doWarmup, "g_doWarmup", "0", 0, 0, qtrue },
|
|
;152: { &g_log, "g_log", "games.log", CVAR_ARCHIVE, 0, qfalse },
|
|
;153: { &g_logSync, "g_logSync", "0", CVAR_ARCHIVE, 0, qfalse },
|
|
;154:
|
|
;155: { &g_statLog, "g_statLog", "0", CVAR_ARCHIVE, 0, qfalse },
|
|
;156: { &g_statLogFile, "g_statLogFile", "statlog.log", CVAR_ARCHIVE, 0, qfalse },
|
|
;157:
|
|
;158: { &g_password, "g_password", "", CVAR_USERINFO, 0, qfalse },
|
|
;159:
|
|
;160: { &g_banIPs, "g_banIPs", "", CVAR_ARCHIVE, 0, qfalse },
|
|
;161: { &g_filterBan, "g_filterBan", "1", CVAR_ARCHIVE, 0, qfalse },
|
|
;162:
|
|
;163: { &g_needpass, "g_needpass", "0", CVAR_SERVERINFO | CVAR_ROM, 0, qfalse },
|
|
;164:
|
|
;165: { &g_dedicated, "dedicated", "0", 0, 0, qfalse },
|
|
;166:
|
|
;167: { &g_speed, "g_speed", "250", 0, 0, qtrue },
|
|
;168: { &g_gravity, "g_gravity", "800", 0, 0, qtrue },
|
|
;169: { &g_knockback, "g_knockback", "1000", 0, 0, qtrue },
|
|
;170: { &g_quadfactor, "g_quadfactor", "3", 0, 0, qtrue },
|
|
;171: { &g_weaponRespawn, "g_weaponrespawn", "5", 0, 0, qtrue },
|
|
;172: { &g_weaponTeamRespawn, "g_weaponTeamRespawn", "5", 0, 0, qtrue },
|
|
;173: { &g_adaptRespawn, "g_adaptrespawn", "1", 0, 0, qtrue }, // Make weapons respawn faster with a lot of players.
|
|
;174: { &g_forcerespawn, "g_forcerespawn", "60", 0, 0, qtrue }, // One minute force respawn. Give a player enough time to reallocate force.
|
|
;175: { &g_inactivity, "g_inactivity", "0", 0, 0, qtrue },
|
|
;176: { &g_debugMove, "g_debugMove", "0", 0, 0, qfalse },
|
|
;177: { &g_debugDamage, "g_debugDamage", "0", 0, 0, qfalse },
|
|
;178: { &g_debugAlloc, "g_debugAlloc", "0", 0, 0, qfalse },
|
|
;179: { &g_motd, "g_motd", "", 0, 0, qfalse },
|
|
;180: { &g_blood, "com_blood", "1", 0, 0, qfalse },
|
|
;181:
|
|
;182: { &g_podiumDist, "g_podiumDist", "80", 0, 0, qfalse },
|
|
;183: { &g_podiumDrop, "g_podiumDrop", "70", 0, 0, qfalse },
|
|
;184:
|
|
;185: { &g_allowVote, "g_allowVote", "1", CVAR_ARCHIVE, 0, qfalse },
|
|
;186: { &g_listEntity, "g_listEntity", "0", 0, 0, qfalse },
|
|
;187:
|
|
;188:#if 0
|
|
;189: { &g_debugForward, "g_debugForward", "0", 0, 0, qfalse },
|
|
;190: { &g_debugRight, "g_debugRight", "0", 0, 0, qfalse },
|
|
;191: { &g_debugUp, "g_debugUp", "0", 0, 0, qfalse },
|
|
;192:#endif
|
|
;193:
|
|
;194: { &g_redteam, "g_redteam", "Empire", CVAR_ARCHIVE | CVAR_SERVERINFO | CVAR_USERINFO , 0, qtrue, qtrue },
|
|
;195: { &g_blueteam, "g_blueteam", "Rebellion", CVAR_ARCHIVE | CVAR_SERVERINFO | CVAR_USERINFO , 0, qtrue, qtrue },
|
|
;196: { &g_singlePlayer, "ui_singlePlayerActive", "", 0, 0, qfalse, qfalse },
|
|
;197:
|
|
;198: { &g_enableDust, "g_enableDust", "0", 0, 0, qtrue, qfalse },
|
|
;199: { &g_enableBreath, "g_enableBreath", "0", 0, 0, qtrue, qfalse },
|
|
;200: { &g_smoothClients, "g_smoothClients", "1", 0, 0, qfalse},
|
|
;201: { &pmove_fixed, "pmove_fixed", "0", CVAR_SYSTEMINFO, 0, qfalse},
|
|
;202: { &pmove_msec, "pmove_msec", "8", CVAR_SYSTEMINFO, 0, qfalse},
|
|
;203:
|
|
;204: { &g_rankings, "g_rankings", "0", 0, 0, qfalse},
|
|
;205:
|
|
;206: { &g_dismember, "g_dismember", "0", 0, 0, qtrue },
|
|
;207: { &g_forceDodge, "g_forceDodge", "1", 0, 0, qtrue },
|
|
;208:
|
|
;209: { &g_timeouttospec, "g_timeouttospec", "70", CVAR_ARCHIVE, 0, qfalse },
|
|
;210:};
|
|
;211:
|
|
;212:// bk001129 - made static to avoid aliasing
|
|
;213:static int gameCvarTableSize = sizeof( gameCvarTable ) / sizeof( gameCvarTable[0] );
|
|
;214:
|
|
;215:
|
|
;216:void G_InitGame ( int levelTime, int randomSeed, int restart );
|
|
;217:void G_RunFrame ( int levelTime );
|
|
;218:void G_ShutdownGame ( int restart );
|
|
;219:void CheckExitRules ( void );
|
|
;220:void G_ROFF_NotetrackCallback ( gentity_t *cent, const char *notetrack);
|
|
;221:
|
|
;222:
|
|
;223:/*
|
|
;224:================
|
|
;225:vmMain
|
|
;226:
|
|
;227:This is the only way control passes into the module.
|
|
;228:This must be the very first function compiled into the .q3vm file
|
|
;229:================
|
|
;230:*/
|
|
;231:int vmMain( int command, int arg0, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, int arg8, int arg9, int arg10, int arg11 ) {
|
|
line 232
|
|
;232: switch ( command ) {
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRI4
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 0
|
|
LTI4 $175
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 11
|
|
GTI4 $175
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRGP4 $189
|
|
ADDP4
|
|
INDIRP4
|
|
JUMPV
|
|
lit
|
|
align 4
|
|
LABELV $189
|
|
address $177
|
|
address $178
|
|
address $179
|
|
address $183
|
|
address $181
|
|
address $182
|
|
address $184
|
|
address $180
|
|
address $185
|
|
address $186
|
|
address $187
|
|
address $188
|
|
code
|
|
LABELV $177
|
|
line 234
|
|
;233: case GAME_INIT:
|
|
;234: G_InitGame( arg0, arg1, arg2 );
|
|
ADDRFP4 4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRFP4 8
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRFP4 12
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 G_InitGame
|
|
CALLV
|
|
pop
|
|
line 235
|
|
;235: return 0;
|
|
CNSTI4 0
|
|
RETI4
|
|
ADDRGP4 $174
|
|
JUMPV
|
|
LABELV $178
|
|
line 237
|
|
;236: case GAME_SHUTDOWN:
|
|
;237: G_ShutdownGame( arg0 );
|
|
ADDRFP4 4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 G_ShutdownGame
|
|
CALLV
|
|
pop
|
|
line 238
|
|
;238: return 0;
|
|
CNSTI4 0
|
|
RETI4
|
|
ADDRGP4 $174
|
|
JUMPV
|
|
LABELV $179
|
|
line 240
|
|
;239: case GAME_CLIENT_CONNECT:
|
|
;240: return (int)ClientConnect( arg0, arg1, arg2 );
|
|
ADDRFP4 4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRFP4 8
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRFP4 12
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 4
|
|
ADDRGP4 ClientConnect
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CVUI4 4
|
|
RETI4
|
|
ADDRGP4 $174
|
|
JUMPV
|
|
LABELV $180
|
|
line 242
|
|
;241: case GAME_CLIENT_THINK:
|
|
;242: ClientThink( arg0 );
|
|
ADDRFP4 4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 ClientThink
|
|
CALLV
|
|
pop
|
|
line 243
|
|
;243: return 0;
|
|
CNSTI4 0
|
|
RETI4
|
|
ADDRGP4 $174
|
|
JUMPV
|
|
LABELV $181
|
|
line 245
|
|
;244: case GAME_CLIENT_USERINFO_CHANGED:
|
|
;245: ClientUserinfoChanged( arg0 );
|
|
ADDRFP4 4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 ClientUserinfoChanged
|
|
CALLV
|
|
pop
|
|
line 246
|
|
;246: return 0;
|
|
CNSTI4 0
|
|
RETI4
|
|
ADDRGP4 $174
|
|
JUMPV
|
|
LABELV $182
|
|
line 248
|
|
;247: case GAME_CLIENT_DISCONNECT:
|
|
;248: ClientDisconnect( arg0 );
|
|
ADDRFP4 4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 ClientDisconnect
|
|
CALLV
|
|
pop
|
|
line 249
|
|
;249: return 0;
|
|
CNSTI4 0
|
|
RETI4
|
|
ADDRGP4 $174
|
|
JUMPV
|
|
LABELV $183
|
|
line 251
|
|
;250: case GAME_CLIENT_BEGIN:
|
|
;251: ClientBegin( arg0, qtrue );
|
|
ADDRFP4 4
|
|
INDIRI4
|
|
ARGI4
|
|
CNSTI4 1
|
|
ARGI4
|
|
ADDRGP4 ClientBegin
|
|
CALLV
|
|
pop
|
|
line 252
|
|
;252: return 0;
|
|
CNSTI4 0
|
|
RETI4
|
|
ADDRGP4 $174
|
|
JUMPV
|
|
LABELV $184
|
|
line 254
|
|
;253: case GAME_CLIENT_COMMAND:
|
|
;254: ClientCommand( arg0 );
|
|
ADDRFP4 4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 ClientCommand
|
|
CALLV
|
|
pop
|
|
line 255
|
|
;255: return 0;
|
|
CNSTI4 0
|
|
RETI4
|
|
ADDRGP4 $174
|
|
JUMPV
|
|
LABELV $185
|
|
line 257
|
|
;256: case GAME_RUN_FRAME:
|
|
;257: G_RunFrame( arg0 );
|
|
ADDRFP4 4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 G_RunFrame
|
|
CALLV
|
|
pop
|
|
line 258
|
|
;258: return 0;
|
|
CNSTI4 0
|
|
RETI4
|
|
ADDRGP4 $174
|
|
JUMPV
|
|
LABELV $186
|
|
line 260
|
|
;259: case GAME_CONSOLE_COMMAND:
|
|
;260: return ConsoleCommand();
|
|
ADDRLP4 8
|
|
ADDRGP4 ConsoleCommand
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
RETI4
|
|
ADDRGP4 $174
|
|
JUMPV
|
|
LABELV $187
|
|
line 262
|
|
;261: case BOTAI_START_FRAME:
|
|
;262: return BotAIStartFrame( arg0 );
|
|
ADDRFP4 4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 12
|
|
ADDRGP4 BotAIStartFrame
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 12
|
|
INDIRI4
|
|
RETI4
|
|
ADDRGP4 $174
|
|
JUMPV
|
|
LABELV $188
|
|
line 264
|
|
;263: case GAME_ROFF_NOTETRACK_CALLBACK:
|
|
;264: G_ROFF_NotetrackCallback( &g_entities[arg0], (const char *)arg1 );
|
|
CNSTI4 828
|
|
ADDRFP4 4
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 g_entities
|
|
ADDP4
|
|
ARGP4
|
|
ADDRFP4 8
|
|
INDIRI4
|
|
CVIU4 4
|
|
CVUP4 4
|
|
ARGP4
|
|
ADDRGP4 G_ROFF_NotetrackCallback
|
|
CALLV
|
|
pop
|
|
line 265
|
|
;265: }
|
|
LABELV $175
|
|
line 267
|
|
;266:
|
|
;267: return -1;
|
|
CNSTI4 -1
|
|
RETI4
|
|
LABELV $174
|
|
endproc vmMain 16 12
|
|
export G_Printf
|
|
proc G_Printf 1028 12
|
|
line 271
|
|
;268:}
|
|
;269:
|
|
;270:
|
|
;271:void QDECL G_Printf( const char *fmt, ... ) {
|
|
line 275
|
|
;272: va_list argptr;
|
|
;273: char text[1024];
|
|
;274:
|
|
;275: va_start (argptr, fmt);
|
|
ADDRLP4 0
|
|
ADDRFP4 0+4
|
|
ASGNP4
|
|
line 276
|
|
;276: vsprintf (text, fmt, argptr);
|
|
ADDRLP4 4
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 vsprintf
|
|
CALLI4
|
|
pop
|
|
line 277
|
|
;277: va_end (argptr);
|
|
ADDRLP4 0
|
|
CNSTP4 0
|
|
ASGNP4
|
|
line 279
|
|
;278:
|
|
;279: trap_Printf( text );
|
|
ADDRLP4 4
|
|
ARGP4
|
|
ADDRGP4 trap_Printf
|
|
CALLV
|
|
pop
|
|
line 280
|
|
;280:}
|
|
LABELV $190
|
|
endproc G_Printf 1028 12
|
|
export G_Error
|
|
proc G_Error 1028 12
|
|
line 282
|
|
;281:
|
|
;282:void QDECL G_Error( const char *fmt, ... ) {
|
|
line 286
|
|
;283: va_list argptr;
|
|
;284: char text[1024];
|
|
;285:
|
|
;286: va_start (argptr, fmt);
|
|
ADDRLP4 0
|
|
ADDRFP4 0+4
|
|
ASGNP4
|
|
line 287
|
|
;287: vsprintf (text, fmt, argptr);
|
|
ADDRLP4 4
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 vsprintf
|
|
CALLI4
|
|
pop
|
|
line 288
|
|
;288: va_end (argptr);
|
|
ADDRLP4 0
|
|
CNSTP4 0
|
|
ASGNP4
|
|
line 290
|
|
;289:
|
|
;290: trap_Error( text );
|
|
ADDRLP4 4
|
|
ARGP4
|
|
ADDRGP4 trap_Error
|
|
CALLV
|
|
pop
|
|
line 291
|
|
;291:}
|
|
LABELV $192
|
|
endproc G_Error 1028 12
|
|
export G_FindTeams
|
|
proc G_FindTeams 48 12
|
|
line 304
|
|
;292:
|
|
;293:/*
|
|
;294:================
|
|
;295:G_FindTeams
|
|
;296:
|
|
;297:Chain together all entities with a matching team field.
|
|
;298:Entity teams are used for item groups and multi-entity mover groups.
|
|
;299:
|
|
;300:All but the first will have the FL_TEAMSLAVE flag set and teammaster field set
|
|
;301:All but the last will have the teamchain field set to the next one
|
|
;302:================
|
|
;303:*/
|
|
;304:void G_FindTeams( void ) {
|
|
line 309
|
|
;305: gentity_t *e, *e2;
|
|
;306: int i, j;
|
|
;307: int c, c2;
|
|
;308:
|
|
;309: c = 0;
|
|
ADDRLP4 20
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 310
|
|
;310: c2 = 0;
|
|
ADDRLP4 12
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 311
|
|
;311: for ( i=1, e=g_entities+i ; i < level.num_entities ; i++,e++ ){
|
|
ADDRLP4 16
|
|
CNSTI4 1
|
|
ASGNI4
|
|
ADDRLP4 4
|
|
CNSTI4 828
|
|
ADDRLP4 16
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 g_entities
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRGP4 $198
|
|
JUMPV
|
|
LABELV $195
|
|
line 312
|
|
;312: if (!e->inuse)
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 412
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $200
|
|
line 313
|
|
;313: continue;
|
|
ADDRGP4 $196
|
|
JUMPV
|
|
LABELV $200
|
|
line 314
|
|
;314: if (!e->team)
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 592
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
NEU4 $202
|
|
line 315
|
|
;315: continue;
|
|
ADDRGP4 $196
|
|
JUMPV
|
|
LABELV $202
|
|
line 316
|
|
;316: if (e->flags & FL_TEAMSLAVE)
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 472
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 1024
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $204
|
|
line 317
|
|
;317: continue;
|
|
ADDRGP4 $196
|
|
JUMPV
|
|
LABELV $204
|
|
line 318
|
|
;318: e->teammaster = e;
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 740
|
|
ADDP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ASGNP4
|
|
line 319
|
|
;319: c++;
|
|
ADDRLP4 20
|
|
ADDRLP4 20
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
line 320
|
|
;320: c2++;
|
|
ADDRLP4 12
|
|
ADDRLP4 12
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
line 321
|
|
;321: for (j=i+1, e2=e+1 ; j < level.num_entities ; j++,e2++)
|
|
ADDRLP4 8
|
|
ADDRLP4 16
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 828
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRGP4 $209
|
|
JUMPV
|
|
LABELV $206
|
|
line 322
|
|
;322: {
|
|
line 323
|
|
;323: if (!e2->inuse)
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 412
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $211
|
|
line 324
|
|
;324: continue;
|
|
ADDRGP4 $207
|
|
JUMPV
|
|
LABELV $211
|
|
line 325
|
|
;325: if (!e2->team)
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 592
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
NEU4 $213
|
|
line 326
|
|
;326: continue;
|
|
ADDRGP4 $207
|
|
JUMPV
|
|
LABELV $213
|
|
line 327
|
|
;327: if (e2->flags & FL_TEAMSLAVE)
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 472
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 1024
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $215
|
|
line 328
|
|
;328: continue;
|
|
ADDRGP4 $207
|
|
JUMPV
|
|
LABELV $215
|
|
line 329
|
|
;329: if (!strcmp(e->team, e2->team))
|
|
ADDRLP4 28
|
|
CNSTI4 592
|
|
ASGNI4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ADDRLP4 28
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ADDRLP4 28
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 32
|
|
ADDRGP4 strcmp
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 32
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $217
|
|
line 330
|
|
;330: {
|
|
line 331
|
|
;331: c2++;
|
|
ADDRLP4 12
|
|
ADDRLP4 12
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
line 332
|
|
;332: e2->teamchain = e->teamchain;
|
|
ADDRLP4 36
|
|
CNSTI4 736
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ADDRLP4 36
|
|
INDIRI4
|
|
ADDP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ADDRLP4 36
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
line 333
|
|
;333: e->teamchain = e2;
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 736
|
|
ADDP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
line 334
|
|
;334: e2->teammaster = e;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 740
|
|
ADDP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ASGNP4
|
|
line 335
|
|
;335: e2->flags |= FL_TEAMSLAVE;
|
|
ADDRLP4 40
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 472
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 40
|
|
INDIRP4
|
|
ADDRLP4 40
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 1024
|
|
BORI4
|
|
ASGNI4
|
|
line 338
|
|
;336:
|
|
;337: // make sure that targets only point at the master
|
|
;338: if ( e2->targetname ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 588
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $219
|
|
line 339
|
|
;339: e->targetname = e2->targetname;
|
|
ADDRLP4 44
|
|
CNSTI4 588
|
|
ASGNI4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ADDRLP4 44
|
|
INDIRI4
|
|
ADDP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ADDRLP4 44
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
line 340
|
|
;340: e2->targetname = NULL;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 588
|
|
ADDP4
|
|
CNSTP4 0
|
|
ASGNP4
|
|
line 341
|
|
;341: }
|
|
LABELV $219
|
|
line 342
|
|
;342: }
|
|
LABELV $217
|
|
line 343
|
|
;343: }
|
|
LABELV $207
|
|
line 321
|
|
ADDRLP4 8
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 828
|
|
ADDP4
|
|
ASGNP4
|
|
LABELV $209
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
ADDRGP4 level+12
|
|
INDIRI4
|
|
LTI4 $206
|
|
line 344
|
|
;344: }
|
|
LABELV $196
|
|
line 311
|
|
ADDRLP4 16
|
|
ADDRLP4 16
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
ADDRLP4 4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 828
|
|
ADDP4
|
|
ASGNP4
|
|
LABELV $198
|
|
ADDRLP4 16
|
|
INDIRI4
|
|
ADDRGP4 level+12
|
|
INDIRI4
|
|
LTI4 $195
|
|
line 346
|
|
;345:
|
|
;346: G_Printf ("%i teams with %i entities\n", c, c2);
|
|
ADDRGP4 $221
|
|
ARGP4
|
|
ADDRLP4 20
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 12
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 G_Printf
|
|
CALLV
|
|
pop
|
|
line 347
|
|
;347:}
|
|
LABELV $194
|
|
endproc G_FindTeams 48 12
|
|
export G_RemapTeamShaders
|
|
proc G_RemapTeamShaders 0 0
|
|
line 349
|
|
;348:
|
|
;349:void G_RemapTeamShaders( void ) {
|
|
line 361
|
|
;350:#if 0
|
|
;351: char string[1024];
|
|
;352: float f = level.time * 0.001;
|
|
;353: Com_sprintf( string, sizeof(string), "team_icon/%s_red", g_redteam.string );
|
|
;354: AddRemap("textures/ctf2/redteam01", string, f);
|
|
;355: AddRemap("textures/ctf2/redteam02", string, f);
|
|
;356: Com_sprintf( string, sizeof(string), "team_icon/%s_blue", g_blueteam.string );
|
|
;357: AddRemap("textures/ctf2/blueteam01", string, f);
|
|
;358: AddRemap("textures/ctf2/blueteam02", string, f);
|
|
;359: trap_SetConfigstring(CS_SHADERSTATE, BuildShaderStateConfig());
|
|
;360:#endif
|
|
;361:}
|
|
LABELV $222
|
|
endproc G_RemapTeamShaders 0 0
|
|
export G_RegisterCvars
|
|
proc G_RegisterCvars 20 16
|
|
line 369
|
|
;362:
|
|
;363:
|
|
;364:/*
|
|
;365:=================
|
|
;366:G_RegisterCvars
|
|
;367:=================
|
|
;368:*/
|
|
;369:void G_RegisterCvars( void ) {
|
|
line 372
|
|
;370: int i;
|
|
;371: cvarTable_t *cv;
|
|
;372: qboolean remapped = qfalse;
|
|
ADDRLP4 8
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 374
|
|
;373:
|
|
;374: for ( i = 0, cv = gameCvarTable ; i < gameCvarTableSize ; i++, cv++ ) {
|
|
ADDRLP4 4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
ADDRGP4 gameCvarTable
|
|
ASGNP4
|
|
ADDRGP4 $227
|
|
JUMPV
|
|
LABELV $224
|
|
line 375
|
|
;375: trap_Cvar_Register( cv->vmCvar, cv->cvarName,
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 4
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 8
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 12
|
|
ADDP4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 trap_Cvar_Register
|
|
CALLV
|
|
pop
|
|
line 377
|
|
;376: cv->defaultString, cv->cvarFlags );
|
|
;377: if ( cv->vmCvar )
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $228
|
|
line 378
|
|
;378: cv->modificationCount = cv->vmCvar->modificationCount;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 16
|
|
ADDP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRP4
|
|
CNSTI4 4
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
LABELV $228
|
|
line 380
|
|
;379:
|
|
;380: if (cv->teamShader) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 24
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $230
|
|
line 381
|
|
;381: remapped = qtrue;
|
|
ADDRLP4 8
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 382
|
|
;382: }
|
|
LABELV $230
|
|
line 383
|
|
;383: }
|
|
LABELV $225
|
|
line 374
|
|
ADDRLP4 4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 28
|
|
ADDP4
|
|
ASGNP4
|
|
LABELV $227
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ADDRGP4 gameCvarTableSize
|
|
INDIRI4
|
|
LTI4 $224
|
|
line 385
|
|
;384:
|
|
;385: if (remapped) {
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $232
|
|
line 386
|
|
;386: G_RemapTeamShaders();
|
|
ADDRGP4 G_RemapTeamShaders
|
|
CALLV
|
|
pop
|
|
line 387
|
|
;387: }
|
|
LABELV $232
|
|
line 390
|
|
;388:
|
|
;389: // check some things
|
|
;390: if ( g_gametype.integer < 0 || g_gametype.integer >= GT_MAX_GAME_TYPE ) {
|
|
ADDRGP4 g_gametype+12
|
|
INDIRI4
|
|
CNSTI4 0
|
|
LTI4 $238
|
|
ADDRGP4 g_gametype+12
|
|
INDIRI4
|
|
CNSTI4 9
|
|
LTI4 $234
|
|
LABELV $238
|
|
line 391
|
|
;391: G_Printf( "g_gametype %i is out of range, defaulting to 0\n", g_gametype.integer );
|
|
ADDRGP4 $239
|
|
ARGP4
|
|
ADDRGP4 g_gametype+12
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 G_Printf
|
|
CALLV
|
|
pop
|
|
line 392
|
|
;392: trap_Cvar_Set( "g_gametype", "0" );
|
|
ADDRGP4 $88
|
|
ARGP4
|
|
ADDRGP4 $86
|
|
ARGP4
|
|
ADDRGP4 trap_Cvar_Set
|
|
CALLV
|
|
pop
|
|
line 393
|
|
;393: }
|
|
LABELV $234
|
|
line 395
|
|
;394:
|
|
;395: level.warmupModificationCount = g_warmup.modificationCount;
|
|
ADDRGP4 level+224
|
|
ADDRGP4 g_warmup+4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 396
|
|
;396:}
|
|
LABELV $223
|
|
endproc G_RegisterCvars 20 16
|
|
export G_UpdateCvars
|
|
proc G_UpdateCvars 28 12
|
|
line 403
|
|
;397:
|
|
;398:/*
|
|
;399:=================
|
|
;400:G_UpdateCvars
|
|
;401:=================
|
|
;402:*/
|
|
;403:void G_UpdateCvars( void ) {
|
|
line 406
|
|
;404: int i;
|
|
;405: cvarTable_t *cv;
|
|
;406: qboolean remapped = qfalse;
|
|
ADDRLP4 8
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 408
|
|
;407:
|
|
;408: for ( i = 0, cv = gameCvarTable ; i < gameCvarTableSize ; i++, cv++ ) {
|
|
ADDRLP4 4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
ADDRGP4 gameCvarTable
|
|
ASGNP4
|
|
ADDRGP4 $247
|
|
JUMPV
|
|
LABELV $244
|
|
line 409
|
|
;409: if ( cv->vmCvar ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $248
|
|
line 410
|
|
;410: trap_Cvar_Update( cv->vmCvar );
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_Cvar_Update
|
|
CALLV
|
|
pop
|
|
line 412
|
|
;411:
|
|
;412: if ( cv->modificationCount != cv->vmCvar->modificationCount ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 16
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRP4
|
|
CNSTI4 4
|
|
ADDP4
|
|
INDIRI4
|
|
EQI4 $250
|
|
line 413
|
|
;413: cv->modificationCount = cv->vmCvar->modificationCount;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 16
|
|
ADDP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRP4
|
|
CNSTI4 4
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 415
|
|
;414:
|
|
;415: if ( cv->trackChange ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 20
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $252
|
|
line 416
|
|
;416: trap_SendServerCommand( -1, va("print \"Server: %s changed to %s\n\"",
|
|
ADDRGP4 $254
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 4
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRP4
|
|
CNSTI4 16
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 24
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
CNSTI4 -1
|
|
ARGI4
|
|
ADDRLP4 24
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_SendServerCommand
|
|
CALLV
|
|
pop
|
|
line 418
|
|
;417: cv->cvarName, cv->vmCvar->string ) );
|
|
;418: }
|
|
LABELV $252
|
|
line 420
|
|
;419:
|
|
;420: if (cv->teamShader) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 24
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $255
|
|
line 421
|
|
;421: remapped = qtrue;
|
|
ADDRLP4 8
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 422
|
|
;422: }
|
|
LABELV $255
|
|
line 423
|
|
;423: }
|
|
LABELV $250
|
|
line 424
|
|
;424: }
|
|
LABELV $248
|
|
line 425
|
|
;425: }
|
|
LABELV $245
|
|
line 408
|
|
ADDRLP4 4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 28
|
|
ADDP4
|
|
ASGNP4
|
|
LABELV $247
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ADDRGP4 gameCvarTableSize
|
|
INDIRI4
|
|
LTI4 $244
|
|
line 427
|
|
;426:
|
|
;427: if (remapped) {
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $257
|
|
line 428
|
|
;428: G_RemapTeamShaders();
|
|
ADDRGP4 G_RemapTeamShaders
|
|
CALLV
|
|
pop
|
|
line 429
|
|
;429: }
|
|
LABELV $257
|
|
line 430
|
|
;430:}
|
|
LABELV $243
|
|
endproc G_UpdateCvars 28 12
|
|
export G_InitGame
|
|
proc G_InitGame 1032 20
|
|
line 438
|
|
;431:
|
|
;432:/*
|
|
;433:============
|
|
;434:G_InitGame
|
|
;435:
|
|
;436:============
|
|
;437:*/
|
|
;438:void G_InitGame( int levelTime, int randomSeed, int restart ) {
|
|
line 441
|
|
;439: int i;
|
|
;440:
|
|
;441: B_InitAlloc(); //make sure everything is clean
|
|
ADDRGP4 B_InitAlloc
|
|
CALLV
|
|
pop
|
|
line 443
|
|
;442:
|
|
;443: G_Printf ("------- Game Initialization -------\n");
|
|
ADDRGP4 $260
|
|
ARGP4
|
|
ADDRGP4 G_Printf
|
|
CALLV
|
|
pop
|
|
line 444
|
|
;444: G_Printf ("gamename: %s\n", GAMEVERSION);
|
|
ADDRGP4 $261
|
|
ARGP4
|
|
ADDRGP4 $82
|
|
ARGP4
|
|
ADDRGP4 G_Printf
|
|
CALLV
|
|
pop
|
|
line 445
|
|
;445: G_Printf ("gamedate: %s\n", __DATE__);
|
|
ADDRGP4 $262
|
|
ARGP4
|
|
ADDRGP4 $84
|
|
ARGP4
|
|
ADDRGP4 G_Printf
|
|
CALLV
|
|
pop
|
|
line 447
|
|
;446:
|
|
;447: srand( randomSeed );
|
|
ADDRFP4 4
|
|
INDIRI4
|
|
CVIU4 4
|
|
ARGU4
|
|
ADDRGP4 srand
|
|
CALLV
|
|
pop
|
|
line 449
|
|
;448:
|
|
;449: G_RegisterCvars();
|
|
ADDRGP4 G_RegisterCvars
|
|
CALLV
|
|
pop
|
|
line 451
|
|
;450:
|
|
;451: G_ProcessIPBans();
|
|
ADDRGP4 G_ProcessIPBans
|
|
CALLV
|
|
pop
|
|
line 453
|
|
;452:
|
|
;453: G_InitMemory();
|
|
ADDRGP4 G_InitMemory
|
|
CALLV
|
|
pop
|
|
line 456
|
|
;454:
|
|
;455: // set some level globals
|
|
;456: memset( &level, 0, sizeof( level ) );
|
|
ADDRGP4 level
|
|
ARGP4
|
|
CNSTI4 0
|
|
ARGI4
|
|
CNSTI4 9096
|
|
ARGI4
|
|
ADDRGP4 memset
|
|
CALLP4
|
|
pop
|
|
line 457
|
|
;457: level.time = levelTime;
|
|
ADDRGP4 level+32
|
|
ADDRFP4 0
|
|
INDIRI4
|
|
ASGNI4
|
|
line 458
|
|
;458: level.startTime = levelTime;
|
|
ADDRGP4 level+40
|
|
ADDRFP4 0
|
|
INDIRI4
|
|
ASGNI4
|
|
line 460
|
|
;459:
|
|
;460: level.snd_fry = G_SoundIndex("sound/player/fry.wav"); // FIXME standing in lava / slime
|
|
ADDRGP4 $266
|
|
ARGP4
|
|
ADDRLP4 4
|
|
ADDRGP4 G_SoundIndex
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRGP4 level+220
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 464
|
|
;461:
|
|
;462: //trap_SP_RegisterServer("mp_svgame");
|
|
;463:
|
|
;464: if ( g_gametype.integer != GT_SINGLE_PLAYER && g_log.string[0] ) {
|
|
ADDRGP4 g_gametype+12
|
|
INDIRI4
|
|
CNSTI4 4
|
|
EQI4 $267
|
|
ADDRGP4 g_log+16
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 0
|
|
EQI4 $267
|
|
line 465
|
|
;465: if ( g_logSync.integer ) {
|
|
ADDRGP4 g_logSync+12
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $271
|
|
line 466
|
|
;466: trap_FS_FOpenFile( g_log.string, &level.logFile, FS_APPEND_SYNC );
|
|
ADDRGP4 g_log+16
|
|
ARGP4
|
|
ADDRGP4 level+20
|
|
ARGP4
|
|
CNSTI4 3
|
|
ARGI4
|
|
ADDRGP4 trap_FS_FOpenFile
|
|
CALLI4
|
|
pop
|
|
line 467
|
|
;467: } else {
|
|
ADDRGP4 $272
|
|
JUMPV
|
|
LABELV $271
|
|
line 468
|
|
;468: trap_FS_FOpenFile( g_log.string, &level.logFile, FS_APPEND );
|
|
ADDRGP4 g_log+16
|
|
ARGP4
|
|
ADDRGP4 level+20
|
|
ARGP4
|
|
CNSTI4 2
|
|
ARGI4
|
|
ADDRGP4 trap_FS_FOpenFile
|
|
CALLI4
|
|
pop
|
|
line 469
|
|
;469: }
|
|
LABELV $272
|
|
line 470
|
|
;470: if ( !level.logFile ) {
|
|
ADDRGP4 level+20
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $278
|
|
line 471
|
|
;471: G_Printf( "WARNING: Couldn't open logfile: %s\n", g_log.string );
|
|
ADDRGP4 $281
|
|
ARGP4
|
|
ADDRGP4 g_log+16
|
|
ARGP4
|
|
ADDRGP4 G_Printf
|
|
CALLV
|
|
pop
|
|
line 472
|
|
;472: } else {
|
|
ADDRGP4 $268
|
|
JUMPV
|
|
LABELV $278
|
|
line 475
|
|
;473: char serverinfo[MAX_INFO_STRING];
|
|
;474:
|
|
;475: trap_GetServerinfo( serverinfo, sizeof( serverinfo ) );
|
|
ADDRLP4 8
|
|
ARGP4
|
|
CNSTI4 1024
|
|
ARGI4
|
|
ADDRGP4 trap_GetServerinfo
|
|
CALLV
|
|
pop
|
|
line 477
|
|
;476:
|
|
;477: G_LogPrintf("------------------------------------------------------------\n" );
|
|
ADDRGP4 $283
|
|
ARGP4
|
|
ADDRGP4 G_LogPrintf
|
|
CALLV
|
|
pop
|
|
line 478
|
|
;478: G_LogPrintf("InitGame: %s\n", serverinfo );
|
|
ADDRGP4 $284
|
|
ARGP4
|
|
ADDRLP4 8
|
|
ARGP4
|
|
ADDRGP4 G_LogPrintf
|
|
CALLV
|
|
pop
|
|
line 479
|
|
;479: }
|
|
line 480
|
|
;480: } else {
|
|
ADDRGP4 $268
|
|
JUMPV
|
|
LABELV $267
|
|
line 481
|
|
;481: G_Printf( "Not logging to disk.\n" );
|
|
ADDRGP4 $285
|
|
ARGP4
|
|
ADDRGP4 G_Printf
|
|
CALLV
|
|
pop
|
|
line 482
|
|
;482: }
|
|
LABELV $268
|
|
line 484
|
|
;483:
|
|
;484: G_LogWeaponInit();
|
|
ADDRGP4 G_LogWeaponInit
|
|
CALLV
|
|
pop
|
|
line 486
|
|
;485:
|
|
;486: G_InitWorldSession();
|
|
ADDRGP4 G_InitWorldSession
|
|
CALLV
|
|
pop
|
|
line 489
|
|
;487:
|
|
;488: // initialize all entities for this game
|
|
;489: memset( g_entities, 0, MAX_GENTITIES * sizeof(g_entities[0]) );
|
|
ADDRGP4 g_entities
|
|
ARGP4
|
|
CNSTI4 0
|
|
ARGI4
|
|
CNSTI4 847872
|
|
ARGI4
|
|
ADDRGP4 memset
|
|
CALLP4
|
|
pop
|
|
line 490
|
|
;490: level.gentities = g_entities;
|
|
ADDRGP4 level+4
|
|
ADDRGP4 g_entities
|
|
ASGNP4
|
|
line 493
|
|
;491:
|
|
;492: // initialize all clients for this game
|
|
;493: level.maxclients = g_maxclients.integer;
|
|
ADDRGP4 level+24
|
|
ADDRGP4 g_maxclients+12
|
|
INDIRI4
|
|
ASGNI4
|
|
line 494
|
|
;494: memset( g_clients, 0, MAX_CLIENTS * sizeof(g_clients[0]) );
|
|
ADDRGP4 g_clients
|
|
ARGP4
|
|
CNSTI4 0
|
|
ARGI4
|
|
CNSTI4 56192
|
|
ARGI4
|
|
ADDRGP4 memset
|
|
CALLP4
|
|
pop
|
|
line 495
|
|
;495: level.clients = g_clients;
|
|
ADDRGP4 level
|
|
ADDRGP4 g_clients
|
|
ASGNP4
|
|
line 498
|
|
;496:
|
|
;497: // set client fields on player ents
|
|
;498: for ( i=0 ; i<level.maxclients ; i++ ) {
|
|
ADDRLP4 0
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 $292
|
|
JUMPV
|
|
LABELV $289
|
|
line 499
|
|
;499: g_entities[i].client = level.clients + i;
|
|
CNSTI4 828
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 g_entities+408
|
|
ADDP4
|
|
CNSTI4 1756
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
ASGNP4
|
|
line 500
|
|
;500: }
|
|
LABELV $290
|
|
line 498
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
LABELV $292
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRGP4 level+24
|
|
INDIRI4
|
|
LTI4 $289
|
|
line 505
|
|
;501:
|
|
;502: // always leave room for the max number of clients,
|
|
;503: // even if they aren't all used, so numbers inside that
|
|
;504: // range are NEVER anything but clients
|
|
;505: level.num_entities = MAX_CLIENTS;
|
|
ADDRGP4 level+12
|
|
CNSTI4 32
|
|
ASGNI4
|
|
line 508
|
|
;506:
|
|
;507: // let the server system know where the entites are
|
|
;508: trap_LocateGameData( level.gentities, level.num_entities, sizeof( gentity_t ),
|
|
ADDRGP4 level+4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 level+12
|
|
INDIRI4
|
|
ARGI4
|
|
CNSTI4 828
|
|
ARGI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 1756
|
|
ARGI4
|
|
ADDRGP4 trap_LocateGameData
|
|
CALLV
|
|
pop
|
|
line 512
|
|
;509: &level.clients[0].ps, sizeof( level.clients[0] ) );
|
|
;510:
|
|
;511: // reserve some spots for dead player bodies
|
|
;512: InitBodyQue();
|
|
ADDRGP4 InitBodyQue
|
|
CALLV
|
|
pop
|
|
line 514
|
|
;513:
|
|
;514: ClearRegisteredItems();
|
|
ADDRGP4 ClearRegisteredItems
|
|
CALLV
|
|
pop
|
|
line 518
|
|
;515:
|
|
;516: // initialize saga mode before spawning entities so we know
|
|
;517: // if we should remove any saga-related entities on spawn
|
|
;518: InitSagaMode();
|
|
ADDRGP4 InitSagaMode
|
|
CALLV
|
|
pop
|
|
line 521
|
|
;519:
|
|
;520: // parse the key/value pairs and spawn gentities
|
|
;521: G_SpawnEntitiesFromString();
|
|
ADDRGP4 G_SpawnEntitiesFromString
|
|
CALLV
|
|
pop
|
|
line 524
|
|
;522:
|
|
;523: // general initialization
|
|
;524: G_FindTeams();
|
|
ADDRGP4 G_FindTeams
|
|
CALLV
|
|
pop
|
|
line 527
|
|
;525:
|
|
;526: // make sure we have flags for CTF, etc
|
|
;527: if( g_gametype.integer >= GT_TEAM ) {
|
|
ADDRGP4 g_gametype+12
|
|
INDIRI4
|
|
CNSTI4 5
|
|
LTI4 $298
|
|
line 528
|
|
;528: G_CheckTeamItems();
|
|
ADDRGP4 G_CheckTeamItems
|
|
CALLV
|
|
pop
|
|
line 529
|
|
;529: }
|
|
ADDRGP4 $299
|
|
JUMPV
|
|
LABELV $298
|
|
line 530
|
|
;530: else if ( g_gametype.integer == GT_JEDIMASTER )
|
|
ADDRGP4 g_gametype+12
|
|
INDIRI4
|
|
CNSTI4 2
|
|
NEI4 $301
|
|
line 531
|
|
;531: {
|
|
line 532
|
|
;532: trap_SetConfigstring ( CS_CLIENT_JEDIMASTER, "-1" );
|
|
CNSTI4 28
|
|
ARGI4
|
|
ADDRGP4 $304
|
|
ARGP4
|
|
ADDRGP4 trap_SetConfigstring
|
|
CALLV
|
|
pop
|
|
line 533
|
|
;533: }
|
|
LABELV $301
|
|
LABELV $299
|
|
line 535
|
|
;534:
|
|
;535: trap_SetConfigstring ( CS_CLIENT_DUELISTS, va("-1|-1") );
|
|
ADDRGP4 $305
|
|
ARGP4
|
|
ADDRLP4 8
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
CNSTI4 30
|
|
ARGI4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_SetConfigstring
|
|
CALLV
|
|
pop
|
|
line 536
|
|
;536: trap_SetConfigstring ( CS_CLIENT_DUELWINNER, va("-1") );
|
|
ADDRGP4 $304
|
|
ARGP4
|
|
ADDRLP4 12
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
CNSTI4 29
|
|
ARGI4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_SetConfigstring
|
|
CALLV
|
|
pop
|
|
line 537
|
|
;537: gDuelist1 = -1;
|
|
ADDRGP4 gDuelist1
|
|
CNSTI4 -1
|
|
ASGNI4
|
|
line 538
|
|
;538: gDuelist2 = -1;
|
|
ADDRGP4 gDuelist2
|
|
CNSTI4 -1
|
|
ASGNI4
|
|
line 540
|
|
;539:
|
|
;540: SaveRegisteredItems();
|
|
ADDRGP4 SaveRegisteredItems
|
|
CALLV
|
|
pop
|
|
line 542
|
|
;541:
|
|
;542: G_Printf ("-----------------------------------\n");
|
|
ADDRGP4 $306
|
|
ARGP4
|
|
ADDRGP4 G_Printf
|
|
CALLV
|
|
pop
|
|
line 544
|
|
;543:
|
|
;544: if( g_gametype.integer == GT_SINGLE_PLAYER || trap_Cvar_VariableIntegerValue( "com_buildScript" ) ) {
|
|
ADDRGP4 g_gametype+12
|
|
INDIRI4
|
|
CNSTI4 4
|
|
EQI4 $311
|
|
ADDRGP4 $310
|
|
ARGP4
|
|
ADDRLP4 16
|
|
ADDRGP4 trap_Cvar_VariableIntegerValue
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 16
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $307
|
|
LABELV $311
|
|
line 545
|
|
;545: G_ModelIndex( SP_PODIUM_MODEL );
|
|
ADDRGP4 $312
|
|
ARGP4
|
|
ADDRGP4 G_ModelIndex
|
|
CALLI4
|
|
pop
|
|
line 546
|
|
;546: G_SoundIndex( "sound/player/gurp1.wav" );
|
|
ADDRGP4 $313
|
|
ARGP4
|
|
ADDRGP4 G_SoundIndex
|
|
CALLI4
|
|
pop
|
|
line 547
|
|
;547: G_SoundIndex( "sound/player/gurp2.wav" );
|
|
ADDRGP4 $314
|
|
ARGP4
|
|
ADDRGP4 G_SoundIndex
|
|
CALLI4
|
|
pop
|
|
line 548
|
|
;548: }
|
|
LABELV $307
|
|
line 550
|
|
;549:
|
|
;550: if ( trap_Cvar_VariableIntegerValue( "bot_enable" ) ) {
|
|
ADDRGP4 $317
|
|
ARGP4
|
|
ADDRLP4 20
|
|
ADDRGP4 trap_Cvar_VariableIntegerValue
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 20
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $315
|
|
line 551
|
|
;551: BotAISetup( restart );
|
|
ADDRFP4 8
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 BotAISetup
|
|
CALLI4
|
|
pop
|
|
line 552
|
|
;552: BotAILoadMap( restart );
|
|
ADDRFP4 8
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 BotAILoadMap
|
|
CALLI4
|
|
pop
|
|
line 553
|
|
;553: G_InitBots( restart );
|
|
ADDRFP4 8
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 G_InitBots
|
|
CALLV
|
|
pop
|
|
line 554
|
|
;554: }
|
|
LABELV $315
|
|
line 556
|
|
;555:
|
|
;556: G_RemapTeamShaders();
|
|
ADDRGP4 G_RemapTeamShaders
|
|
CALLV
|
|
pop
|
|
line 557
|
|
;557:}
|
|
LABELV $259
|
|
endproc G_InitGame 1032 20
|
|
export G_ShutdownGame
|
|
proc G_ShutdownGame 4 4
|
|
line 566
|
|
;558:
|
|
;559:
|
|
;560:
|
|
;561:/*
|
|
;562:=================
|
|
;563:G_ShutdownGame
|
|
;564:=================
|
|
;565:*/
|
|
;566:void G_ShutdownGame( int restart ) {
|
|
line 567
|
|
;567: G_Printf ("==== ShutdownGame ====\n");
|
|
ADDRGP4 $319
|
|
ARGP4
|
|
ADDRGP4 G_Printf
|
|
CALLV
|
|
pop
|
|
line 569
|
|
;568:
|
|
;569: G_LogWeaponOutput();
|
|
ADDRGP4 G_LogWeaponOutput
|
|
CALLV
|
|
pop
|
|
line 571
|
|
;570:
|
|
;571: if ( level.logFile ) {
|
|
ADDRGP4 level+20
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $320
|
|
line 572
|
|
;572: G_LogPrintf("ShutdownGame:\n" );
|
|
ADDRGP4 $323
|
|
ARGP4
|
|
ADDRGP4 G_LogPrintf
|
|
CALLV
|
|
pop
|
|
line 573
|
|
;573: G_LogPrintf("------------------------------------------------------------\n" );
|
|
ADDRGP4 $283
|
|
ARGP4
|
|
ADDRGP4 G_LogPrintf
|
|
CALLV
|
|
pop
|
|
line 574
|
|
;574: trap_FS_FCloseFile( level.logFile );
|
|
ADDRGP4 level+20
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 trap_FS_FCloseFile
|
|
CALLV
|
|
pop
|
|
line 575
|
|
;575: }
|
|
LABELV $320
|
|
line 578
|
|
;576:
|
|
;577: // write all the client session data so we can get it back
|
|
;578: G_WriteSessionData();
|
|
ADDRGP4 G_WriteSessionData
|
|
CALLV
|
|
pop
|
|
line 580
|
|
;579:
|
|
;580: trap_ROFF_Clean();
|
|
ADDRGP4 trap_ROFF_Clean
|
|
CALLI4
|
|
pop
|
|
line 582
|
|
;581:
|
|
;582: if ( trap_Cvar_VariableIntegerValue( "bot_enable" ) ) {
|
|
ADDRGP4 $317
|
|
ARGP4
|
|
ADDRLP4 0
|
|
ADDRGP4 trap_Cvar_VariableIntegerValue
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $325
|
|
line 583
|
|
;583: BotAIShutdown( restart );
|
|
ADDRFP4 0
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 BotAIShutdown
|
|
CALLI4
|
|
pop
|
|
line 584
|
|
;584: }
|
|
LABELV $325
|
|
line 586
|
|
;585:
|
|
;586: B_CleanupAlloc(); //clean up all allocations made with B_Alloc
|
|
ADDRGP4 B_CleanupAlloc
|
|
CALLV
|
|
pop
|
|
line 587
|
|
;587:}
|
|
LABELV $318
|
|
endproc G_ShutdownGame 4 4
|
|
export Com_Error
|
|
proc Com_Error 1028 12
|
|
line 596
|
|
;588:
|
|
;589:
|
|
;590:
|
|
;591://===================================================================
|
|
;592:
|
|
;593:#ifndef GAME_HARD_LINKED
|
|
;594:// this is only here so the functions in q_shared.c and bg_*.c can link
|
|
;595:
|
|
;596:void QDECL Com_Error ( int level, const char *error, ... ) {
|
|
line 600
|
|
;597: va_list argptr;
|
|
;598: char text[1024];
|
|
;599:
|
|
;600: va_start (argptr, error);
|
|
ADDRLP4 0
|
|
ADDRFP4 4+4
|
|
ASGNP4
|
|
line 601
|
|
;601: vsprintf (text, error, argptr);
|
|
ADDRLP4 4
|
|
ARGP4
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 vsprintf
|
|
CALLI4
|
|
pop
|
|
line 602
|
|
;602: va_end (argptr);
|
|
ADDRLP4 0
|
|
CNSTP4 0
|
|
ASGNP4
|
|
line 604
|
|
;603:
|
|
;604: G_Error( "%s", text);
|
|
ADDRGP4 $329
|
|
ARGP4
|
|
ADDRLP4 4
|
|
ARGP4
|
|
ADDRGP4 G_Error
|
|
CALLV
|
|
pop
|
|
line 605
|
|
;605:}
|
|
LABELV $327
|
|
endproc Com_Error 1028 12
|
|
export Com_Printf
|
|
proc Com_Printf 1028 12
|
|
line 607
|
|
;606:
|
|
;607:void QDECL Com_Printf( const char *msg, ... ) {
|
|
line 611
|
|
;608: va_list argptr;
|
|
;609: char text[1024];
|
|
;610:
|
|
;611: va_start (argptr, msg);
|
|
ADDRLP4 0
|
|
ADDRFP4 0+4
|
|
ASGNP4
|
|
line 612
|
|
;612: vsprintf (text, msg, argptr);
|
|
ADDRLP4 4
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 vsprintf
|
|
CALLI4
|
|
pop
|
|
line 613
|
|
;613: va_end (argptr);
|
|
ADDRLP4 0
|
|
CNSTP4 0
|
|
ASGNP4
|
|
line 615
|
|
;614:
|
|
;615: G_Printf ("%s", text);
|
|
ADDRGP4 $329
|
|
ARGP4
|
|
ADDRLP4 4
|
|
ARGP4
|
|
ADDRGP4 G_Printf
|
|
CALLV
|
|
pop
|
|
line 616
|
|
;616:}
|
|
LABELV $330
|
|
endproc Com_Printf 1028 12
|
|
export AddTournamentPlayer
|
|
proc AddTournamentPlayer 24 8
|
|
line 636
|
|
;617:
|
|
;618:#endif
|
|
;619:
|
|
;620:/*
|
|
;621:========================================================================
|
|
;622:
|
|
;623:PLAYER COUNTING / SCORE SORTING
|
|
;624:
|
|
;625:========================================================================
|
|
;626:*/
|
|
;627:
|
|
;628:/*
|
|
;629:=============
|
|
;630:AddTournamentPlayer
|
|
;631:
|
|
;632:If there are less than two tournament players, put a
|
|
;633:spectator in the game and restart
|
|
;634:=============
|
|
;635:*/
|
|
;636:void AddTournamentPlayer( void ) {
|
|
line 641
|
|
;637: int i;
|
|
;638: gclient_t *client;
|
|
;639: gclient_t *nextInLine;
|
|
;640:
|
|
;641: if ( level.numPlayingClients >= 2 ) {
|
|
ADDRGP4 level+80
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LTI4 $333
|
|
line 642
|
|
;642: return;
|
|
ADDRGP4 $332
|
|
JUMPV
|
|
LABELV $333
|
|
line 650
|
|
;643: }
|
|
;644:
|
|
;645: // never change during intermission
|
|
;646:// if ( level.intermissiontime ) {
|
|
;647:// return;
|
|
;648:// }
|
|
;649:
|
|
;650: nextInLine = NULL;
|
|
ADDRLP4 8
|
|
CNSTP4 0
|
|
ASGNP4
|
|
line 652
|
|
;651:
|
|
;652: for ( i = 0 ; i < level.maxclients ; i++ ) {
|
|
ADDRLP4 4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 $339
|
|
JUMPV
|
|
LABELV $336
|
|
line 653
|
|
;653: client = &level.clients[i];
|
|
ADDRLP4 0
|
|
CNSTI4 1756
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
ASGNP4
|
|
line 654
|
|
;654: if ( client->pers.connected != CON_CONNECTED ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1368
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
EQI4 $341
|
|
line 655
|
|
;655: continue;
|
|
ADDRGP4 $337
|
|
JUMPV
|
|
LABELV $341
|
|
line 657
|
|
;656: }
|
|
;657: if ( client->sess.sessionTeam != TEAM_SPECTATOR ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1520
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 3
|
|
EQI4 $343
|
|
line 658
|
|
;658: continue;
|
|
ADDRGP4 $337
|
|
JUMPV
|
|
LABELV $343
|
|
line 661
|
|
;659: }
|
|
;660: // never select the dedicated follow or scoreboard clients
|
|
;661: if ( client->sess.spectatorState == SPECTATOR_SCOREBOARD ||
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1528
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 3
|
|
EQI4 $347
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1532
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
GEI4 $345
|
|
LABELV $347
|
|
line 662
|
|
;662: client->sess.spectatorClient < 0 ) {
|
|
line 663
|
|
;663: continue;
|
|
ADDRGP4 $337
|
|
JUMPV
|
|
LABELV $345
|
|
line 666
|
|
;664: }
|
|
;665:
|
|
;666: if ( !nextInLine || client->sess.spectatorTime < nextInLine->sess.spectatorTime ) {
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $350
|
|
ADDRLP4 20
|
|
CNSTI4 1524
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ADDRLP4 20
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
ADDRLP4 20
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRI4
|
|
GEI4 $348
|
|
LABELV $350
|
|
line 667
|
|
;667: nextInLine = client;
|
|
ADDRLP4 8
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
line 668
|
|
;668: }
|
|
LABELV $348
|
|
line 669
|
|
;669: }
|
|
LABELV $337
|
|
line 652
|
|
ADDRLP4 4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
LABELV $339
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ADDRGP4 level+24
|
|
INDIRI4
|
|
LTI4 $336
|
|
line 671
|
|
;670:
|
|
;671: if ( !nextInLine ) {
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
NEU4 $351
|
|
line 672
|
|
;672: return;
|
|
ADDRGP4 $332
|
|
JUMPV
|
|
LABELV $351
|
|
line 675
|
|
;673: }
|
|
;674:
|
|
;675: level.warmupTime = -1;
|
|
ADDRGP4 level+16
|
|
CNSTI4 -1
|
|
ASGNI4
|
|
line 678
|
|
;676:
|
|
;677: // set them to free-for-all team
|
|
;678: SetTeam( &g_entities[ nextInLine - level.clients ], "f" );
|
|
CNSTI4 828
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
CVPU4 4
|
|
SUBU4
|
|
CVUI4 4
|
|
CNSTI4 1756
|
|
DIVI4
|
|
MULI4
|
|
ADDRGP4 g_entities
|
|
ADDP4
|
|
ARGP4
|
|
ADDRGP4 $354
|
|
ARGP4
|
|
ADDRGP4 SetTeam
|
|
CALLV
|
|
pop
|
|
line 679
|
|
;679:}
|
|
LABELV $332
|
|
endproc AddTournamentPlayer 24 8
|
|
export RemoveTournamentLoser
|
|
proc RemoveTournamentLoser 4 8
|
|
line 688
|
|
;680:
|
|
;681:/*
|
|
;682:=======================
|
|
;683:RemoveTournamentLoser
|
|
;684:
|
|
;685:Make the loser a spectator at the back of the line
|
|
;686:=======================
|
|
;687:*/
|
|
;688:void RemoveTournamentLoser( void ) {
|
|
line 691
|
|
;689: int clientNum;
|
|
;690:
|
|
;691: if ( level.numPlayingClients != 2 ) {
|
|
ADDRGP4 level+80
|
|
INDIRI4
|
|
CNSTI4 2
|
|
EQI4 $356
|
|
line 692
|
|
;692: return;
|
|
ADDRGP4 $355
|
|
JUMPV
|
|
LABELV $356
|
|
line 695
|
|
;693: }
|
|
;694:
|
|
;695: clientNum = level.sortedClients[1];
|
|
ADDRLP4 0
|
|
ADDRGP4 level+84+4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 697
|
|
;696:
|
|
;697: if ( level.clients[ clientNum ].pers.connected != CON_CONNECTED ) {
|
|
CNSTI4 1756
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 1368
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
EQI4 $361
|
|
line 698
|
|
;698: return;
|
|
ADDRGP4 $355
|
|
JUMPV
|
|
LABELV $361
|
|
line 702
|
|
;699: }
|
|
;700:
|
|
;701: // make them a spectator
|
|
;702: SetTeam( &g_entities[ clientNum ], "s" );
|
|
CNSTI4 828
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 g_entities
|
|
ADDP4
|
|
ARGP4
|
|
ADDRGP4 $363
|
|
ARGP4
|
|
ADDRGP4 SetTeam
|
|
CALLV
|
|
pop
|
|
line 703
|
|
;703:}
|
|
LABELV $355
|
|
endproc RemoveTournamentLoser 4 8
|
|
export RemoveTournamentWinner
|
|
proc RemoveTournamentWinner 4 8
|
|
line 710
|
|
;704:
|
|
;705:/*
|
|
;706:=======================
|
|
;707:RemoveTournamentWinner
|
|
;708:=======================
|
|
;709:*/
|
|
;710:void RemoveTournamentWinner( void ) {
|
|
line 713
|
|
;711: int clientNum;
|
|
;712:
|
|
;713: if ( level.numPlayingClients != 2 ) {
|
|
ADDRGP4 level+80
|
|
INDIRI4
|
|
CNSTI4 2
|
|
EQI4 $365
|
|
line 714
|
|
;714: return;
|
|
ADDRGP4 $364
|
|
JUMPV
|
|
LABELV $365
|
|
line 717
|
|
;715: }
|
|
;716:
|
|
;717: clientNum = level.sortedClients[0];
|
|
ADDRLP4 0
|
|
ADDRGP4 level+84
|
|
INDIRI4
|
|
ASGNI4
|
|
line 719
|
|
;718:
|
|
;719: if ( level.clients[ clientNum ].pers.connected != CON_CONNECTED ) {
|
|
CNSTI4 1756
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 1368
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
EQI4 $369
|
|
line 720
|
|
;720: return;
|
|
ADDRGP4 $364
|
|
JUMPV
|
|
LABELV $369
|
|
line 724
|
|
;721: }
|
|
;722:
|
|
;723: // make them a spectator
|
|
;724: SetTeam( &g_entities[ clientNum ], "s" );
|
|
CNSTI4 828
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 g_entities
|
|
ADDP4
|
|
ARGP4
|
|
ADDRGP4 $363
|
|
ARGP4
|
|
ADDRGP4 SetTeam
|
|
CALLV
|
|
pop
|
|
line 725
|
|
;725:}
|
|
LABELV $364
|
|
endproc RemoveTournamentWinner 4 8
|
|
export AdjustTournamentScores
|
|
proc AdjustTournamentScores 12 8
|
|
line 732
|
|
;726:
|
|
;727:/*
|
|
;728:=======================
|
|
;729:AdjustTournamentScores
|
|
;730:=======================
|
|
;731:*/
|
|
;732:void AdjustTournamentScores( void ) {
|
|
line 735
|
|
;733: int clientNum;
|
|
;734:
|
|
;735: clientNum = level.sortedClients[0];
|
|
ADDRLP4 0
|
|
ADDRGP4 level+84
|
|
INDIRI4
|
|
ASGNI4
|
|
line 736
|
|
;736: if ( level.clients[ clientNum ].pers.connected == CON_CONNECTED ) {
|
|
CNSTI4 1756
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 1368
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
NEI4 $373
|
|
line 737
|
|
;737: level.clients[ clientNum ].sess.wins++;
|
|
ADDRLP4 4
|
|
CNSTI4 1756
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 1536
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
line 738
|
|
;738: ClientUserinfoChanged( clientNum );
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 ClientUserinfoChanged
|
|
CALLV
|
|
pop
|
|
line 740
|
|
;739:
|
|
;740: trap_SetConfigstring ( CS_CLIENT_DUELWINNER, va("%i", clientNum ) );
|
|
ADDRGP4 $375
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 8
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
CNSTI4 29
|
|
ARGI4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_SetConfigstring
|
|
CALLV
|
|
pop
|
|
line 741
|
|
;741: }
|
|
LABELV $373
|
|
line 743
|
|
;742:
|
|
;743: clientNum = level.sortedClients[1];
|
|
ADDRLP4 0
|
|
ADDRGP4 level+84+4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 744
|
|
;744: if ( level.clients[ clientNum ].pers.connected == CON_CONNECTED ) {
|
|
CNSTI4 1756
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 1368
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
NEI4 $378
|
|
line 745
|
|
;745: level.clients[ clientNum ].sess.losses++;
|
|
ADDRLP4 4
|
|
CNSTI4 1756
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 1540
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
line 746
|
|
;746: ClientUserinfoChanged( clientNum );
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 ClientUserinfoChanged
|
|
CALLV
|
|
pop
|
|
line 747
|
|
;747: }
|
|
LABELV $378
|
|
line 749
|
|
;748:
|
|
;749:}
|
|
LABELV $371
|
|
endproc AdjustTournamentScores 12 8
|
|
export SortRanks
|
|
proc SortRanks 32 0
|
|
line 757
|
|
;750:
|
|
;751:/*
|
|
;752:=============
|
|
;753:SortRanks
|
|
;754:
|
|
;755:=============
|
|
;756:*/
|
|
;757:int QDECL SortRanks( const void *a, const void *b ) {
|
|
line 760
|
|
;758: gclient_t *ca, *cb;
|
|
;759:
|
|
;760: ca = &level.clients[*(int *)a];
|
|
ADDRLP4 0
|
|
CNSTI4 1756
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
ASGNP4
|
|
line 761
|
|
;761: cb = &level.clients[*(int *)b];
|
|
ADDRLP4 4
|
|
CNSTI4 1756
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
ASGNP4
|
|
line 764
|
|
;762:
|
|
;763: // sort special clients last
|
|
;764: if ( ca->sess.spectatorState == SPECTATOR_SCOREBOARD || ca->sess.spectatorClient < 0 ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1528
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 3
|
|
EQI4 $383
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1532
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
GEI4 $381
|
|
LABELV $383
|
|
line 765
|
|
;765: return 1;
|
|
CNSTI4 1
|
|
RETI4
|
|
ADDRGP4 $380
|
|
JUMPV
|
|
LABELV $381
|
|
line 767
|
|
;766: }
|
|
;767: if ( cb->sess.spectatorState == SPECTATOR_SCOREBOARD || cb->sess.spectatorClient < 0 ) {
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 1528
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 3
|
|
EQI4 $386
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 1532
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
GEI4 $384
|
|
LABELV $386
|
|
line 768
|
|
;768: return -1;
|
|
CNSTI4 -1
|
|
RETI4
|
|
ADDRGP4 $380
|
|
JUMPV
|
|
LABELV $384
|
|
line 772
|
|
;769: }
|
|
;770:
|
|
;771: // then connecting clients
|
|
;772: if ( ca->pers.connected == CON_CONNECTING ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1368
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
NEI4 $387
|
|
line 773
|
|
;773: return 1;
|
|
CNSTI4 1
|
|
RETI4
|
|
ADDRGP4 $380
|
|
JUMPV
|
|
LABELV $387
|
|
line 775
|
|
;774: }
|
|
;775: if ( cb->pers.connected == CON_CONNECTING ) {
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 1368
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
NEI4 $389
|
|
line 776
|
|
;776: return -1;
|
|
CNSTI4 -1
|
|
RETI4
|
|
ADDRGP4 $380
|
|
JUMPV
|
|
LABELV $389
|
|
line 781
|
|
;777: }
|
|
;778:
|
|
;779:
|
|
;780: // then spectators
|
|
;781: if ( ca->sess.sessionTeam == TEAM_SPECTATOR && cb->sess.sessionTeam == TEAM_SPECTATOR ) {
|
|
ADDRLP4 16
|
|
CNSTI4 1520
|
|
ASGNI4
|
|
ADDRLP4 20
|
|
CNSTI4 3
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ADDRLP4 16
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 20
|
|
INDIRI4
|
|
NEI4 $391
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ADDRLP4 16
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 20
|
|
INDIRI4
|
|
NEI4 $391
|
|
line 782
|
|
;782: if ( ca->sess.spectatorTime < cb->sess.spectatorTime ) {
|
|
ADDRLP4 24
|
|
CNSTI4 1524
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ADDRLP4 24
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ADDRLP4 24
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRI4
|
|
GEI4 $393
|
|
line 783
|
|
;783: return -1;
|
|
CNSTI4 -1
|
|
RETI4
|
|
ADDRGP4 $380
|
|
JUMPV
|
|
LABELV $393
|
|
line 785
|
|
;784: }
|
|
;785: if ( ca->sess.spectatorTime > cb->sess.spectatorTime ) {
|
|
ADDRLP4 28
|
|
CNSTI4 1524
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ADDRLP4 28
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ADDRLP4 28
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRI4
|
|
LEI4 $395
|
|
line 786
|
|
;786: return 1;
|
|
CNSTI4 1
|
|
RETI4
|
|
ADDRGP4 $380
|
|
JUMPV
|
|
LABELV $395
|
|
line 788
|
|
;787: }
|
|
;788: return 0;
|
|
CNSTI4 0
|
|
RETI4
|
|
ADDRGP4 $380
|
|
JUMPV
|
|
LABELV $391
|
|
line 790
|
|
;789: }
|
|
;790: if ( ca->sess.sessionTeam == TEAM_SPECTATOR ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1520
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 3
|
|
NEI4 $397
|
|
line 791
|
|
;791: return 1;
|
|
CNSTI4 1
|
|
RETI4
|
|
ADDRGP4 $380
|
|
JUMPV
|
|
LABELV $397
|
|
line 793
|
|
;792: }
|
|
;793: if ( cb->sess.sessionTeam == TEAM_SPECTATOR ) {
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 1520
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 3
|
|
NEI4 $399
|
|
line 794
|
|
;794: return -1;
|
|
CNSTI4 -1
|
|
RETI4
|
|
ADDRGP4 $380
|
|
JUMPV
|
|
LABELV $399
|
|
line 798
|
|
;795: }
|
|
;796:
|
|
;797: // then sort by score
|
|
;798: if ( ca->ps.persistant[PERS_SCORE]
|
|
ADDRLP4 24
|
|
CNSTI4 280
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ADDRLP4 24
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ADDRLP4 24
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRI4
|
|
LEI4 $401
|
|
line 799
|
|
;799: > cb->ps.persistant[PERS_SCORE] ) {
|
|
line 800
|
|
;800: return -1;
|
|
CNSTI4 -1
|
|
RETI4
|
|
ADDRGP4 $380
|
|
JUMPV
|
|
LABELV $401
|
|
line 802
|
|
;801: }
|
|
;802: if ( ca->ps.persistant[PERS_SCORE]
|
|
ADDRLP4 28
|
|
CNSTI4 280
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ADDRLP4 28
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ADDRLP4 28
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRI4
|
|
GEI4 $403
|
|
line 803
|
|
;803: < cb->ps.persistant[PERS_SCORE] ) {
|
|
line 804
|
|
;804: return 1;
|
|
CNSTI4 1
|
|
RETI4
|
|
ADDRGP4 $380
|
|
JUMPV
|
|
LABELV $403
|
|
line 806
|
|
;805: }
|
|
;806: return 0;
|
|
CNSTI4 0
|
|
RETI4
|
|
LABELV $380
|
|
endproc SortRanks 32 0
|
|
export CalculateRanks
|
|
proc CalculateRanks 52 16
|
|
line 818
|
|
;807:}
|
|
;808:
|
|
;809:/*
|
|
;810:============
|
|
;811:CalculateRanks
|
|
;812:
|
|
;813:Recalculates the score ranks of all players
|
|
;814:This will be called on every client connect, begin, disconnect, death,
|
|
;815:and team change.
|
|
;816:============
|
|
;817:*/
|
|
;818:void CalculateRanks( void ) {
|
|
line 823
|
|
;819: int i;
|
|
;820: int rank;
|
|
;821: int score;
|
|
;822: int newScore;
|
|
;823: int preNumSpec = 0;
|
|
ADDRLP4 24
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 824
|
|
;824: int nonSpecIndex = -1;
|
|
ADDRLP4 20
|
|
CNSTI4 -1
|
|
ASGNI4
|
|
line 827
|
|
;825: gclient_t *cl;
|
|
;826:
|
|
;827: preNumSpec = level.numNonSpectatorClients;
|
|
ADDRLP4 24
|
|
ADDRGP4 level+76
|
|
INDIRI4
|
|
ASGNI4
|
|
line 829
|
|
;828:
|
|
;829: level.follow1 = -1;
|
|
ADDRGP4 level+212
|
|
CNSTI4 -1
|
|
ASGNI4
|
|
line 830
|
|
;830: level.follow2 = -1;
|
|
ADDRGP4 level+216
|
|
CNSTI4 -1
|
|
ASGNI4
|
|
line 831
|
|
;831: level.numConnectedClients = 0;
|
|
ADDRGP4 level+72
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 832
|
|
;832: level.numNonSpectatorClients = 0;
|
|
ADDRGP4 level+76
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 833
|
|
;833: level.numPlayingClients = 0;
|
|
ADDRGP4 level+80
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 834
|
|
;834: level.numVotingClients = 0; // don't count bots
|
|
ADDRGP4 level+2292
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 835
|
|
;835: for ( i = 0; i < TEAM_NUM_TEAMS; i++ ) {
|
|
ADDRLP4 0
|
|
CNSTI4 0
|
|
ASGNI4
|
|
LABELV $413
|
|
line 836
|
|
;836: level.numteamVotingClients[i] = 0;
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRGP4 level+4376
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 837
|
|
;837: }
|
|
LABELV $414
|
|
line 835
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 4
|
|
LTI4 $413
|
|
line 838
|
|
;838: for ( i = 0 ; i < level.maxclients ; i++ ) {
|
|
ADDRLP4 0
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 $421
|
|
JUMPV
|
|
LABELV $418
|
|
line 839
|
|
;839: if ( level.clients[i].pers.connected != CON_DISCONNECTED ) {
|
|
CNSTI4 1756
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 1368
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $423
|
|
line 840
|
|
;840: level.sortedClients[level.numConnectedClients] = i;
|
|
ADDRGP4 level+72
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRGP4 level+84
|
|
ADDP4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ASGNI4
|
|
line 841
|
|
;841: level.numConnectedClients++;
|
|
ADDRLP4 28
|
|
ADDRGP4 level+72
|
|
ASGNP4
|
|
ADDRLP4 28
|
|
INDIRP4
|
|
ADDRLP4 28
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
line 843
|
|
;842:
|
|
;843: if ( level.clients[i].sess.sessionTeam != TEAM_SPECTATOR ) {
|
|
CNSTI4 1756
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 1520
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 3
|
|
EQI4 $428
|
|
line 844
|
|
;844: level.numNonSpectatorClients++;
|
|
ADDRLP4 32
|
|
ADDRGP4 level+76
|
|
ASGNP4
|
|
ADDRLP4 32
|
|
INDIRP4
|
|
ADDRLP4 32
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
line 845
|
|
;845: nonSpecIndex = i;
|
|
ADDRLP4 20
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ASGNI4
|
|
line 848
|
|
;846:
|
|
;847: // decide if this should be auto-followed
|
|
;848: if ( level.clients[i].pers.connected == CON_CONNECTED ) {
|
|
CNSTI4 1756
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 1368
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
NEI4 $431
|
|
line 849
|
|
;849: level.numPlayingClients++;
|
|
ADDRLP4 36
|
|
ADDRGP4 level+80
|
|
ASGNP4
|
|
ADDRLP4 36
|
|
INDIRP4
|
|
ADDRLP4 36
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
line 850
|
|
;850: if ( !(g_entities[i].r.svFlags & SVF_BOT) ) {
|
|
CNSTI4 828
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 g_entities+296+8
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 8
|
|
BANDI4
|
|
CNSTI4 0
|
|
NEI4 $434
|
|
line 851
|
|
;851: level.numVotingClients++;
|
|
ADDRLP4 40
|
|
ADDRGP4 level+2292
|
|
ASGNP4
|
|
ADDRLP4 40
|
|
INDIRP4
|
|
ADDRLP4 40
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
line 852
|
|
;852: if ( level.clients[i].sess.sessionTeam == TEAM_RED )
|
|
CNSTI4 1756
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 1520
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
NEI4 $439
|
|
line 853
|
|
;853: level.numteamVotingClients[0]++;
|
|
ADDRLP4 44
|
|
ADDRGP4 level+4376
|
|
ASGNP4
|
|
ADDRLP4 44
|
|
INDIRP4
|
|
ADDRLP4 44
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
ADDRGP4 $440
|
|
JUMPV
|
|
LABELV $439
|
|
line 854
|
|
;854: else if ( level.clients[i].sess.sessionTeam == TEAM_BLUE )
|
|
CNSTI4 1756
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 1520
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
NEI4 $442
|
|
line 855
|
|
;855: level.numteamVotingClients[1]++;
|
|
ADDRLP4 48
|
|
ADDRGP4 level+4376+4
|
|
ASGNP4
|
|
ADDRLP4 48
|
|
INDIRP4
|
|
ADDRLP4 48
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
LABELV $442
|
|
LABELV $440
|
|
line 856
|
|
;856: }
|
|
LABELV $434
|
|
line 857
|
|
;857: if ( level.follow1 == -1 ) {
|
|
ADDRGP4 level+212
|
|
INDIRI4
|
|
CNSTI4 -1
|
|
NEI4 $446
|
|
line 858
|
|
;858: level.follow1 = i;
|
|
ADDRGP4 level+212
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ASGNI4
|
|
line 859
|
|
;859: } else if ( level.follow2 == -1 ) {
|
|
ADDRGP4 $447
|
|
JUMPV
|
|
LABELV $446
|
|
ADDRGP4 level+216
|
|
INDIRI4
|
|
CNSTI4 -1
|
|
NEI4 $450
|
|
line 860
|
|
;860: level.follow2 = i;
|
|
ADDRGP4 level+216
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ASGNI4
|
|
line 861
|
|
;861: }
|
|
LABELV $450
|
|
LABELV $447
|
|
line 862
|
|
;862: }
|
|
LABELV $431
|
|
line 863
|
|
;863: }
|
|
LABELV $428
|
|
line 864
|
|
;864: }
|
|
LABELV $423
|
|
line 865
|
|
;865: }
|
|
LABELV $419
|
|
line 838
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
LABELV $421
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRGP4 level+24
|
|
INDIRI4
|
|
LTI4 $418
|
|
line 867
|
|
;866:
|
|
;867: if (!g_warmup.integer)
|
|
ADDRGP4 g_warmup+12
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $454
|
|
line 868
|
|
;868: {
|
|
line 869
|
|
;869: level.warmupTime = 0;
|
|
ADDRGP4 level+16
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 870
|
|
;870: }
|
|
LABELV $454
|
|
line 886
|
|
;871:
|
|
;872: /*
|
|
;873: if (level.numNonSpectatorClients == 2 && preNumSpec < 2 && nonSpecIndex != -1 && g_gametype.integer == GT_TOURNAMENT && !level.warmupTime)
|
|
;874: {
|
|
;875: gentity_t *currentWinner = G_GetDuelWinner(&level.clients[nonSpecIndex]);
|
|
;876:
|
|
;877: if (currentWinner && currentWinner->client)
|
|
;878: {
|
|
;879: trap_SendServerCommand( -1, va("cp \"%s" S_COLOR_WHITE " %s %s\n\"",
|
|
;880: currentWinner->client->pers.netname, G_GetStripEdString("SVINGAME", "VERSUS"), level.clients[nonSpecIndex].pers.netname));
|
|
;881: }
|
|
;882: }
|
|
;883: */
|
|
;884: //NOTE: for now not doing this either. May use later if appropriate.
|
|
;885:
|
|
;886: qsort( level.sortedClients, level.numConnectedClients,
|
|
ADDRGP4 level+84
|
|
ARGP4
|
|
ADDRGP4 level+72
|
|
INDIRI4
|
|
ARGI4
|
|
CNSTI4 4
|
|
ARGI4
|
|
ADDRGP4 SortRanks
|
|
ARGP4
|
|
ADDRGP4 qsort
|
|
CALLV
|
|
pop
|
|
line 890
|
|
;887: sizeof(level.sortedClients[0]), SortRanks );
|
|
;888:
|
|
;889: // set the rank value for all clients that are connected and not spectators
|
|
;890: if ( g_gametype.integer >= GT_TEAM ) {
|
|
ADDRGP4 g_gametype+12
|
|
INDIRI4
|
|
CNSTI4 5
|
|
LTI4 $461
|
|
line 892
|
|
;891: // in team games, rank is just the order of the teams, 0=red, 1=blue, 2=tied
|
|
;892: for ( i = 0; i < level.numConnectedClients; i++ ) {
|
|
ADDRLP4 0
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 $467
|
|
JUMPV
|
|
LABELV $464
|
|
line 893
|
|
;893: cl = &level.clients[ level.sortedClients[i] ];
|
|
ADDRLP4 4
|
|
CNSTI4 1756
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRGP4 level+84
|
|
ADDP4
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
ASGNP4
|
|
line 894
|
|
;894: if ( level.teamScores[TEAM_RED] == level.teamScores[TEAM_BLUE] ) {
|
|
ADDRGP4 level+44+4
|
|
INDIRI4
|
|
ADDRGP4 level+44+8
|
|
INDIRI4
|
|
NEI4 $470
|
|
line 895
|
|
;895: cl->ps.persistant[PERS_RANK] = 2;
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 288
|
|
ADDP4
|
|
CNSTI4 2
|
|
ASGNI4
|
|
line 896
|
|
;896: } else if ( level.teamScores[TEAM_RED] > level.teamScores[TEAM_BLUE] ) {
|
|
ADDRGP4 $471
|
|
JUMPV
|
|
LABELV $470
|
|
ADDRGP4 level+44+4
|
|
INDIRI4
|
|
ADDRGP4 level+44+8
|
|
INDIRI4
|
|
LEI4 $476
|
|
line 897
|
|
;897: cl->ps.persistant[PERS_RANK] = 0;
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 288
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 898
|
|
;898: } else {
|
|
ADDRGP4 $477
|
|
JUMPV
|
|
LABELV $476
|
|
line 899
|
|
;899: cl->ps.persistant[PERS_RANK] = 1;
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 288
|
|
ADDP4
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 900
|
|
;900: }
|
|
LABELV $477
|
|
LABELV $471
|
|
line 901
|
|
;901: }
|
|
LABELV $465
|
|
line 892
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
LABELV $467
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRGP4 level+72
|
|
INDIRI4
|
|
LTI4 $464
|
|
line 902
|
|
;902: } else {
|
|
ADDRGP4 $462
|
|
JUMPV
|
|
LABELV $461
|
|
line 903
|
|
;903: rank = -1;
|
|
ADDRLP4 12
|
|
CNSTI4 -1
|
|
ASGNI4
|
|
line 904
|
|
;904: score = 0;
|
|
ADDRLP4 16
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 905
|
|
;905: for ( i = 0; i < level.numPlayingClients; i++ ) {
|
|
ADDRLP4 0
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 $485
|
|
JUMPV
|
|
LABELV $482
|
|
line 906
|
|
;906: cl = &level.clients[ level.sortedClients[i] ];
|
|
ADDRLP4 4
|
|
CNSTI4 1756
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRGP4 level+84
|
|
ADDP4
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
ASGNP4
|
|
line 907
|
|
;907: newScore = cl->ps.persistant[PERS_SCORE];
|
|
ADDRLP4 8
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 280
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 908
|
|
;908: if ( i == 0 || newScore != score ) {
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $490
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
ADDRLP4 16
|
|
INDIRI4
|
|
EQI4 $488
|
|
LABELV $490
|
|
line 909
|
|
;909: rank = i;
|
|
ADDRLP4 12
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ASGNI4
|
|
line 911
|
|
;910: // assume we aren't tied until the next client is checked
|
|
;911: level.clients[ level.sortedClients[i] ].ps.persistant[PERS_RANK] = rank;
|
|
CNSTI4 1756
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRGP4 level+84
|
|
ADDP4
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 288
|
|
ADDP4
|
|
ADDRLP4 12
|
|
INDIRI4
|
|
ASGNI4
|
|
line 912
|
|
;912: } else {
|
|
ADDRGP4 $489
|
|
JUMPV
|
|
LABELV $488
|
|
line 914
|
|
;913: // we are tied with the previous client
|
|
;914: level.clients[ level.sortedClients[i-1] ].ps.persistant[PERS_RANK] = rank | RANK_TIED_FLAG;
|
|
CNSTI4 1756
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRGP4 level+84-4
|
|
ADDP4
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 288
|
|
ADDP4
|
|
ADDRLP4 12
|
|
INDIRI4
|
|
CNSTI4 16384
|
|
BORI4
|
|
ASGNI4
|
|
line 915
|
|
;915: level.clients[ level.sortedClients[i] ].ps.persistant[PERS_RANK] = rank | RANK_TIED_FLAG;
|
|
CNSTI4 1756
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRGP4 level+84
|
|
ADDP4
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 288
|
|
ADDP4
|
|
ADDRLP4 12
|
|
INDIRI4
|
|
CNSTI4 16384
|
|
BORI4
|
|
ASGNI4
|
|
line 916
|
|
;916: }
|
|
LABELV $489
|
|
line 917
|
|
;917: score = newScore;
|
|
ADDRLP4 16
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
ASGNI4
|
|
line 918
|
|
;918: if ( g_gametype.integer == GT_SINGLE_PLAYER && level.numPlayingClients == 1 ) {
|
|
ADDRGP4 g_gametype+12
|
|
INDIRI4
|
|
CNSTI4 4
|
|
NEI4 $495
|
|
ADDRGP4 level+80
|
|
INDIRI4
|
|
CNSTI4 1
|
|
NEI4 $495
|
|
line 919
|
|
;919: level.clients[ level.sortedClients[i] ].ps.persistant[PERS_RANK] = rank | RANK_TIED_FLAG;
|
|
CNSTI4 1756
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRGP4 level+84
|
|
ADDP4
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 288
|
|
ADDP4
|
|
ADDRLP4 12
|
|
INDIRI4
|
|
CNSTI4 16384
|
|
BORI4
|
|
ASGNI4
|
|
line 920
|
|
;920: }
|
|
LABELV $495
|
|
line 921
|
|
;921: }
|
|
LABELV $483
|
|
line 905
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
LABELV $485
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRGP4 level+80
|
|
INDIRI4
|
|
LTI4 $482
|
|
line 922
|
|
;922: }
|
|
LABELV $462
|
|
line 925
|
|
;923:
|
|
;924: // set the CS_SCORES1/2 configstrings, which will be visible to everyone
|
|
;925: if ( g_gametype.integer >= GT_TEAM ) {
|
|
ADDRGP4 g_gametype+12
|
|
INDIRI4
|
|
CNSTI4 5
|
|
LTI4 $500
|
|
line 926
|
|
;926: trap_SetConfigstring( CS_SCORES1, va("%i", level.teamScores[TEAM_RED] ) );
|
|
ADDRGP4 $375
|
|
ARGP4
|
|
ADDRGP4 level+44+4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 28
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
CNSTI4 6
|
|
ARGI4
|
|
ADDRLP4 28
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_SetConfigstring
|
|
CALLV
|
|
pop
|
|
line 927
|
|
;927: trap_SetConfigstring( CS_SCORES2, va("%i", level.teamScores[TEAM_BLUE] ) );
|
|
ADDRGP4 $375
|
|
ARGP4
|
|
ADDRGP4 level+44+8
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 32
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
CNSTI4 7
|
|
ARGI4
|
|
ADDRLP4 32
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_SetConfigstring
|
|
CALLV
|
|
pop
|
|
line 928
|
|
;928: } else {
|
|
ADDRGP4 $501
|
|
JUMPV
|
|
LABELV $500
|
|
line 929
|
|
;929: if ( level.numConnectedClients == 0 ) {
|
|
ADDRGP4 level+72
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $507
|
|
line 930
|
|
;930: trap_SetConfigstring( CS_SCORES1, va("%i", SCORE_NOT_PRESENT) );
|
|
ADDRGP4 $375
|
|
ARGP4
|
|
CNSTI4 -9999
|
|
ARGI4
|
|
ADDRLP4 28
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
CNSTI4 6
|
|
ARGI4
|
|
ADDRLP4 28
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_SetConfigstring
|
|
CALLV
|
|
pop
|
|
line 931
|
|
;931: trap_SetConfigstring( CS_SCORES2, va("%i", SCORE_NOT_PRESENT) );
|
|
ADDRGP4 $375
|
|
ARGP4
|
|
CNSTI4 -9999
|
|
ARGI4
|
|
ADDRLP4 32
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
CNSTI4 7
|
|
ARGI4
|
|
ADDRLP4 32
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_SetConfigstring
|
|
CALLV
|
|
pop
|
|
line 932
|
|
;932: } else if ( level.numConnectedClients == 1 ) {
|
|
ADDRGP4 $508
|
|
JUMPV
|
|
LABELV $507
|
|
ADDRGP4 level+72
|
|
INDIRI4
|
|
CNSTI4 1
|
|
NEI4 $510
|
|
line 933
|
|
;933: trap_SetConfigstring( CS_SCORES1, va("%i", level.clients[ level.sortedClients[0] ].ps.persistant[PERS_SCORE] ) );
|
|
ADDRGP4 $375
|
|
ARGP4
|
|
CNSTI4 1756
|
|
ADDRGP4 level+84
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 280
|
|
ADDP4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 28
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
CNSTI4 6
|
|
ARGI4
|
|
ADDRLP4 28
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_SetConfigstring
|
|
CALLV
|
|
pop
|
|
line 934
|
|
;934: trap_SetConfigstring( CS_SCORES2, va("%i", SCORE_NOT_PRESENT) );
|
|
ADDRGP4 $375
|
|
ARGP4
|
|
CNSTI4 -9999
|
|
ARGI4
|
|
ADDRLP4 32
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
CNSTI4 7
|
|
ARGI4
|
|
ADDRLP4 32
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_SetConfigstring
|
|
CALLV
|
|
pop
|
|
line 935
|
|
;935: } else {
|
|
ADDRGP4 $511
|
|
JUMPV
|
|
LABELV $510
|
|
line 936
|
|
;936: trap_SetConfigstring( CS_SCORES1, va("%i", level.clients[ level.sortedClients[0] ].ps.persistant[PERS_SCORE] ) );
|
|
ADDRGP4 $375
|
|
ARGP4
|
|
CNSTI4 1756
|
|
ADDRGP4 level+84
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 280
|
|
ADDP4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 28
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
CNSTI4 6
|
|
ARGI4
|
|
ADDRLP4 28
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_SetConfigstring
|
|
CALLV
|
|
pop
|
|
line 937
|
|
;937: trap_SetConfigstring( CS_SCORES2, va("%i", level.clients[ level.sortedClients[1] ].ps.persistant[PERS_SCORE] ) );
|
|
ADDRGP4 $375
|
|
ARGP4
|
|
CNSTI4 1756
|
|
ADDRGP4 level+84+4
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 280
|
|
ADDP4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 32
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
CNSTI4 7
|
|
ARGI4
|
|
ADDRLP4 32
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_SetConfigstring
|
|
CALLV
|
|
pop
|
|
line 938
|
|
;938: }
|
|
LABELV $511
|
|
LABELV $508
|
|
line 940
|
|
;939:
|
|
;940: if (g_gametype.integer != GT_TOURNAMENT)
|
|
ADDRGP4 g_gametype+12
|
|
INDIRI4
|
|
CNSTI4 3
|
|
EQI4 $517
|
|
line 941
|
|
;941: { //when not in duel, use this configstring to pass the index of the player currently in first place
|
|
line 942
|
|
;942: if ( level.numConnectedClients >= 1 )
|
|
ADDRGP4 level+72
|
|
INDIRI4
|
|
CNSTI4 1
|
|
LTI4 $520
|
|
line 943
|
|
;943: {
|
|
line 944
|
|
;944: trap_SetConfigstring ( CS_CLIENT_DUELWINNER, va("%i", level.sortedClients[0] ) );
|
|
ADDRGP4 $375
|
|
ARGP4
|
|
ADDRGP4 level+84
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 28
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
CNSTI4 29
|
|
ARGI4
|
|
ADDRLP4 28
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_SetConfigstring
|
|
CALLV
|
|
pop
|
|
line 945
|
|
;945: }
|
|
ADDRGP4 $521
|
|
JUMPV
|
|
LABELV $520
|
|
line 947
|
|
;946: else
|
|
;947: {
|
|
line 948
|
|
;948: trap_SetConfigstring ( CS_CLIENT_DUELWINNER, "-1" );
|
|
CNSTI4 29
|
|
ARGI4
|
|
ADDRGP4 $304
|
|
ARGP4
|
|
ADDRGP4 trap_SetConfigstring
|
|
CALLV
|
|
pop
|
|
line 949
|
|
;949: }
|
|
LABELV $521
|
|
line 950
|
|
;950: }
|
|
LABELV $517
|
|
line 951
|
|
;951: }
|
|
LABELV $501
|
|
line 954
|
|
;952:
|
|
;953: // see if it is time to end the level
|
|
;954: CheckExitRules();
|
|
ADDRGP4 CheckExitRules
|
|
CALLV
|
|
pop
|
|
line 957
|
|
;955:
|
|
;956: // if we are at the intermission, send the new info to everyone
|
|
;957: if ( level.intermissiontime ) {
|
|
ADDRGP4 level+9008
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $524
|
|
line 958
|
|
;958: SendScoreboardMessageToAllClients();
|
|
ADDRGP4 SendScoreboardMessageToAllClients
|
|
CALLV
|
|
pop
|
|
line 959
|
|
;959: }
|
|
LABELV $524
|
|
line 960
|
|
;960:}
|
|
LABELV $405
|
|
endproc CalculateRanks 52 16
|
|
export SendScoreboardMessageToAllClients
|
|
proc SendScoreboardMessageToAllClients 4 4
|
|
line 979
|
|
;961:
|
|
;962:
|
|
;963:/*
|
|
;964:========================================================================
|
|
;965:
|
|
;966:MAP CHANGING
|
|
;967:
|
|
;968:========================================================================
|
|
;969:*/
|
|
;970:
|
|
;971:/*
|
|
;972:========================
|
|
;973:SendScoreboardMessageToAllClients
|
|
;974:
|
|
;975:Do this at BeginIntermission time and whenever ranks are recalculated
|
|
;976:due to enters/exits/forced team changes
|
|
;977:========================
|
|
;978:*/
|
|
;979:void SendScoreboardMessageToAllClients( void ) {
|
|
line 982
|
|
;980: int i;
|
|
;981:
|
|
;982: for ( i = 0 ; i < level.maxclients ; i++ ) {
|
|
ADDRLP4 0
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 $531
|
|
JUMPV
|
|
LABELV $528
|
|
line 983
|
|
;983: if ( level.clients[ i ].pers.connected == CON_CONNECTED ) {
|
|
CNSTI4 1756
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 1368
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
NEI4 $533
|
|
line 984
|
|
;984: DeathmatchScoreboardMessage( g_entities + i );
|
|
CNSTI4 828
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 g_entities
|
|
ADDP4
|
|
ARGP4
|
|
ADDRGP4 DeathmatchScoreboardMessage
|
|
CALLV
|
|
pop
|
|
line 985
|
|
;985: }
|
|
LABELV $533
|
|
line 986
|
|
;986: }
|
|
LABELV $529
|
|
line 982
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
LABELV $531
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRGP4 level+24
|
|
INDIRI4
|
|
LTI4 $528
|
|
line 987
|
|
;987:}
|
|
LABELV $527
|
|
endproc SendScoreboardMessageToAllClients 4 4
|
|
export MoveClientToIntermission
|
|
proc MoveClientToIntermission 0 12
|
|
line 997
|
|
;988:
|
|
;989:/*
|
|
;990:========================
|
|
;991:MoveClientToIntermission
|
|
;992:
|
|
;993:When the intermission starts, this will be called for all players.
|
|
;994:If a new client connects, this will be called after the spawn function.
|
|
;995:========================
|
|
;996:*/
|
|
;997:void MoveClientToIntermission( gentity_t *ent ) {
|
|
line 999
|
|
;998: // take out of follow mode if needed
|
|
;999: if ( ent->client->sess.spectatorState == SPECTATOR_FOLLOW ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1528
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
NEI4 $536
|
|
line 1000
|
|
;1000: StopFollowing( ent );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 StopFollowing
|
|
CALLV
|
|
pop
|
|
line 1001
|
|
;1001: }
|
|
LABELV $536
|
|
line 1005
|
|
;1002:
|
|
;1003:
|
|
;1004: // move to the spot
|
|
;1005: VectorCopy( level.intermission_origin, ent->s.origin );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 92
|
|
ADDP4
|
|
ADDRGP4 level+9024
|
|
INDIRB
|
|
ASGNB 12
|
|
line 1006
|
|
;1006: VectorCopy( level.intermission_origin, ent->client->ps.origin );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 20
|
|
ADDP4
|
|
ADDRGP4 level+9024
|
|
INDIRB
|
|
ASGNB 12
|
|
line 1007
|
|
;1007: VectorCopy (level.intermission_angle, ent->client->ps.viewangles);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 156
|
|
ADDP4
|
|
ADDRGP4 level+9036
|
|
INDIRB
|
|
ASGNB 12
|
|
line 1008
|
|
;1008: ent->client->ps.pm_type = PM_INTERMISSION;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 4
|
|
ADDP4
|
|
CNSTI4 6
|
|
ASGNI4
|
|
line 1011
|
|
;1009:
|
|
;1010: // clean up powerup info
|
|
;1011: memset( ent->client->ps.powerups, 0, sizeof(ent->client->ps.powerups) );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 344
|
|
ADDP4
|
|
ARGP4
|
|
CNSTI4 0
|
|
ARGI4
|
|
CNSTI4 64
|
|
ARGI4
|
|
ADDRGP4 memset
|
|
CALLP4
|
|
pop
|
|
line 1013
|
|
;1012:
|
|
;1013: ent->client->ps.eFlags = 0;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 108
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1014
|
|
;1014: ent->s.eFlags = 0;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 8
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1015
|
|
;1015: ent->s.eType = ET_GENERAL;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 4
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1016
|
|
;1016: ent->s.modelindex = 0;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 212
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1017
|
|
;1017: ent->s.loopSound = 0;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 200
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1018
|
|
;1018: ent->s.event = 0;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 252
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1019
|
|
;1019: ent->r.contents = 0;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 340
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1020
|
|
;1020:}
|
|
LABELV $535
|
|
endproc MoveClientToIntermission 0 12
|
|
export FindIntermissionPoint
|
|
proc FindIntermissionPoint 32 12
|
|
line 1029
|
|
;1021:
|
|
;1022:/*
|
|
;1023:==================
|
|
;1024:FindIntermissionPoint
|
|
;1025:
|
|
;1026:This is also used for spectator spawns
|
|
;1027:==================
|
|
;1028:*/
|
|
;1029:void FindIntermissionPoint( void ) {
|
|
line 1034
|
|
;1030: gentity_t *ent, *target;
|
|
;1031: vec3_t dir;
|
|
;1032:
|
|
;1033: // find the intermission spot
|
|
;1034: ent = G_Find (NULL, FOFS(classname), "info_player_intermission");
|
|
CNSTP4 0
|
|
ARGP4
|
|
CNSTI4 416
|
|
ARGI4
|
|
ADDRGP4 $542
|
|
ARGP4
|
|
ADDRLP4 20
|
|
ADDRGP4 G_Find
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
ASGNP4
|
|
line 1035
|
|
;1035: if ( !ent ) { // the map creator forgot to put in an intermission point...
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
NEU4 $543
|
|
line 1036
|
|
;1036: SelectSpawnPoint ( vec3_origin, level.intermission_origin, level.intermission_angle );
|
|
ADDRGP4 vec3_origin
|
|
ARGP4
|
|
ADDRGP4 level+9024
|
|
ARGP4
|
|
ADDRGP4 level+9036
|
|
ARGP4
|
|
ADDRGP4 SelectSpawnPoint
|
|
CALLP4
|
|
pop
|
|
line 1037
|
|
;1037: } else {
|
|
ADDRGP4 $544
|
|
JUMPV
|
|
LABELV $543
|
|
line 1038
|
|
;1038: VectorCopy (ent->s.origin, level.intermission_origin);
|
|
ADDRGP4 level+9024
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 92
|
|
ADDP4
|
|
INDIRB
|
|
ASGNB 12
|
|
line 1039
|
|
;1039: VectorCopy (ent->s.angles, level.intermission_angle);
|
|
ADDRGP4 level+9036
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 116
|
|
ADDP4
|
|
INDIRB
|
|
ASGNB 12
|
|
line 1041
|
|
;1040: // if it has a target, look towards it
|
|
;1041: if ( ent->target ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 584
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $549
|
|
line 1042
|
|
;1042: target = G_PickTarget( ent->target );
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 584
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 24
|
|
ADDRGP4 G_PickTarget
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 4
|
|
ADDRLP4 24
|
|
INDIRP4
|
|
ASGNP4
|
|
line 1043
|
|
;1043: if ( target ) {
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $551
|
|
line 1044
|
|
;1044: VectorSubtract( target->s.origin, level.intermission_origin, dir );
|
|
ADDRLP4 28
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 8
|
|
ADDRLP4 28
|
|
INDIRP4
|
|
CNSTI4 92
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRGP4 level+9024
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
ADDRLP4 8+4
|
|
ADDRLP4 28
|
|
INDIRP4
|
|
CNSTI4 96
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRGP4 level+9024+4
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
ADDRLP4 8+8
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 100
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRGP4 level+9024+8
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
line 1045
|
|
;1045: vectoangles( dir, level.intermission_angle );
|
|
ADDRLP4 8
|
|
ARGP4
|
|
ADDRGP4 level+9036
|
|
ARGP4
|
|
ADDRGP4 vectoangles
|
|
CALLV
|
|
pop
|
|
line 1046
|
|
;1046: }
|
|
LABELV $551
|
|
line 1047
|
|
;1047: }
|
|
LABELV $549
|
|
line 1048
|
|
;1048: }
|
|
LABELV $544
|
|
line 1050
|
|
;1049:
|
|
;1050:}
|
|
LABELV $541
|
|
endproc FindIntermissionPoint 32 12
|
|
export BeginIntermission
|
|
proc BeginIntermission 12 8
|
|
line 1059
|
|
;1051:
|
|
;1052:qboolean DuelLimitHit(void);
|
|
;1053:
|
|
;1054:/*
|
|
;1055:==================
|
|
;1056:BeginIntermission
|
|
;1057:==================
|
|
;1058:*/
|
|
;1059:void BeginIntermission( void ) {
|
|
line 1063
|
|
;1060: int i;
|
|
;1061: gentity_t *client;
|
|
;1062:
|
|
;1063: if ( level.intermissiontime ) {
|
|
ADDRGP4 level+9008
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $562
|
|
line 1064
|
|
;1064: return; // already active
|
|
ADDRGP4 $561
|
|
JUMPV
|
|
LABELV $562
|
|
line 1068
|
|
;1065: }
|
|
;1066:
|
|
;1067: // if in tournement mode, change the wins / losses
|
|
;1068: if ( g_gametype.integer == GT_TOURNAMENT ) {
|
|
ADDRGP4 g_gametype+12
|
|
INDIRI4
|
|
CNSTI4 3
|
|
NEI4 $565
|
|
line 1069
|
|
;1069: trap_SetConfigstring ( CS_CLIENT_DUELWINNER, "-1" );
|
|
CNSTI4 29
|
|
ARGI4
|
|
ADDRGP4 $304
|
|
ARGP4
|
|
ADDRGP4 trap_SetConfigstring
|
|
CALLV
|
|
pop
|
|
line 1071
|
|
;1070:
|
|
;1071: AdjustTournamentScores();
|
|
ADDRGP4 AdjustTournamentScores
|
|
CALLV
|
|
pop
|
|
line 1072
|
|
;1072: if (DuelLimitHit())
|
|
ADDRLP4 8
|
|
ADDRGP4 DuelLimitHit
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $568
|
|
line 1073
|
|
;1073: {
|
|
line 1074
|
|
;1074: gDuelExit = qtrue;
|
|
ADDRGP4 gDuelExit
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 1075
|
|
;1075: }
|
|
ADDRGP4 $569
|
|
JUMPV
|
|
LABELV $568
|
|
line 1077
|
|
;1076: else
|
|
;1077: {
|
|
line 1078
|
|
;1078: gDuelExit = qfalse;
|
|
ADDRGP4 gDuelExit
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1079
|
|
;1079: }
|
|
LABELV $569
|
|
line 1080
|
|
;1080: }
|
|
LABELV $565
|
|
line 1082
|
|
;1081:
|
|
;1082: level.intermissiontime = level.time;
|
|
ADDRGP4 level+9008
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1083
|
|
;1083: FindIntermissionPoint();
|
|
ADDRGP4 FindIntermissionPoint
|
|
CALLV
|
|
pop
|
|
line 1085
|
|
;1084:
|
|
;1085: if (g_singlePlayer.integer) {
|
|
ADDRGP4 g_singlePlayer+12
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $572
|
|
line 1086
|
|
;1086: trap_Cvar_Set("ui_singlePlayerActive", "0");
|
|
ADDRGP4 $164
|
|
ARGP4
|
|
ADDRGP4 $86
|
|
ARGP4
|
|
ADDRGP4 trap_Cvar_Set
|
|
CALLV
|
|
pop
|
|
line 1087
|
|
;1087: UpdateTournamentInfo();
|
|
ADDRGP4 UpdateTournamentInfo
|
|
CALLV
|
|
pop
|
|
line 1088
|
|
;1088: }
|
|
LABELV $572
|
|
line 1091
|
|
;1089:
|
|
;1090: // move all clients to the intermission point
|
|
;1091: for (i=0 ; i< level.maxclients ; i++) {
|
|
ADDRLP4 4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 $578
|
|
JUMPV
|
|
LABELV $575
|
|
line 1092
|
|
;1092: client = g_entities + i;
|
|
ADDRLP4 0
|
|
CNSTI4 828
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 g_entities
|
|
ADDP4
|
|
ASGNP4
|
|
line 1093
|
|
;1093: if (!client->inuse)
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 412
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $580
|
|
line 1094
|
|
;1094: continue;
|
|
ADDRGP4 $576
|
|
JUMPV
|
|
LABELV $580
|
|
line 1096
|
|
;1095: // respawn if dead
|
|
;1096: if (client->health <= 0) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 676
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
GTI4 $582
|
|
line 1097
|
|
;1097: respawn(client);
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 respawn
|
|
CALLV
|
|
pop
|
|
line 1098
|
|
;1098: }
|
|
LABELV $582
|
|
line 1099
|
|
;1099: MoveClientToIntermission( client );
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 MoveClientToIntermission
|
|
CALLV
|
|
pop
|
|
line 1100
|
|
;1100: }
|
|
LABELV $576
|
|
line 1091
|
|
ADDRLP4 4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
LABELV $578
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ADDRGP4 level+24
|
|
INDIRI4
|
|
LTI4 $575
|
|
line 1103
|
|
;1101:
|
|
;1102: // send the current scoring to all clients
|
|
;1103: SendScoreboardMessageToAllClients();
|
|
ADDRGP4 SendScoreboardMessageToAllClients
|
|
CALLV
|
|
pop
|
|
line 1105
|
|
;1104:
|
|
;1105:}
|
|
LABELV $561
|
|
endproc BeginIntermission 12 8
|
|
export DuelLimitHit
|
|
proc DuelLimitHit 8 0
|
|
line 1108
|
|
;1106:
|
|
;1107:qboolean DuelLimitHit(void)
|
|
;1108:{
|
|
line 1112
|
|
;1109: int i;
|
|
;1110: gclient_t *cl;
|
|
;1111:
|
|
;1112: for ( i=0 ; i< g_maxclients.integer ; i++ ) {
|
|
ADDRLP4 0
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 $588
|
|
JUMPV
|
|
LABELV $585
|
|
line 1113
|
|
;1113: cl = level.clients + i;
|
|
ADDRLP4 4
|
|
CNSTI4 1756
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
ASGNP4
|
|
line 1114
|
|
;1114: if ( cl->pers.connected != CON_CONNECTED ) {
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 1368
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
EQI4 $590
|
|
line 1115
|
|
;1115: continue;
|
|
ADDRGP4 $586
|
|
JUMPV
|
|
LABELV $590
|
|
line 1118
|
|
;1116: }
|
|
;1117:
|
|
;1118: if ( g_duel_fraglimit.integer && cl->sess.wins >= g_duel_fraglimit.integer )
|
|
ADDRGP4 g_duel_fraglimit+12
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $592
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 1536
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRGP4 g_duel_fraglimit+12
|
|
INDIRI4
|
|
LTI4 $592
|
|
line 1119
|
|
;1119: {
|
|
line 1120
|
|
;1120: return qtrue;
|
|
CNSTI4 1
|
|
RETI4
|
|
ADDRGP4 $584
|
|
JUMPV
|
|
LABELV $592
|
|
line 1122
|
|
;1121: }
|
|
;1122: }
|
|
LABELV $586
|
|
line 1112
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
LABELV $588
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRGP4 g_maxclients+12
|
|
INDIRI4
|
|
LTI4 $585
|
|
line 1124
|
|
;1123:
|
|
;1124: return qfalse;
|
|
CNSTI4 0
|
|
RETI4
|
|
LABELV $584
|
|
endproc DuelLimitHit 8 0
|
|
export DuelResetWinsLosses
|
|
proc DuelResetWinsLosses 8 0
|
|
line 1128
|
|
;1125:}
|
|
;1126:
|
|
;1127:void DuelResetWinsLosses(void)
|
|
;1128:{
|
|
line 1132
|
|
;1129: int i;
|
|
;1130: gclient_t *cl;
|
|
;1131:
|
|
;1132: for ( i=0 ; i< g_maxclients.integer ; i++ ) {
|
|
ADDRLP4 4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 $600
|
|
JUMPV
|
|
LABELV $597
|
|
line 1133
|
|
;1133: cl = level.clients + i;
|
|
ADDRLP4 0
|
|
CNSTI4 1756
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
ASGNP4
|
|
line 1134
|
|
;1134: if ( cl->pers.connected != CON_CONNECTED ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1368
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
EQI4 $602
|
|
line 1135
|
|
;1135: continue;
|
|
ADDRGP4 $598
|
|
JUMPV
|
|
LABELV $602
|
|
line 1138
|
|
;1136: }
|
|
;1137:
|
|
;1138: cl->sess.wins = 0;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1536
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1139
|
|
;1139: cl->sess.losses = 0;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1540
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1140
|
|
;1140: }
|
|
LABELV $598
|
|
line 1132
|
|
ADDRLP4 4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
LABELV $600
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ADDRGP4 g_maxclients+12
|
|
INDIRI4
|
|
LTI4 $597
|
|
line 1141
|
|
;1141:}
|
|
LABELV $596
|
|
endproc DuelResetWinsLosses 8 0
|
|
export ExitLevel
|
|
proc ExitLevel 12 8
|
|
line 1152
|
|
;1142:
|
|
;1143:/*
|
|
;1144:=============
|
|
;1145:ExitLevel
|
|
;1146:
|
|
;1147:When the intermission has been exited, the server is either killed
|
|
;1148:or moved to a new level based on the "nextmap" cvar
|
|
;1149:
|
|
;1150:=============
|
|
;1151:*/
|
|
;1152:void ExitLevel (void) {
|
|
line 1158
|
|
;1153: int i;
|
|
;1154: gclient_t *cl;
|
|
;1155:
|
|
;1156: // if we are running a tournement map, kick the loser to spectator status,
|
|
;1157: // which will automatically grab the next spectator and restart
|
|
;1158: if ( g_gametype.integer == GT_TOURNAMENT ) {
|
|
ADDRGP4 g_gametype+12
|
|
INDIRI4
|
|
CNSTI4 3
|
|
NEI4 $605
|
|
line 1159
|
|
;1159: if (!DuelLimitHit())
|
|
ADDRLP4 8
|
|
ADDRGP4 DuelLimitHit
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $608
|
|
line 1160
|
|
;1160: {
|
|
line 1161
|
|
;1161: if ( !level.restarted ) {
|
|
ADDRGP4 level+68
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $604
|
|
line 1162
|
|
;1162: trap_SendConsoleCommand( EXEC_APPEND, "map_restart 0\n" );
|
|
CNSTI4 2
|
|
ARGI4
|
|
ADDRGP4 $613
|
|
ARGP4
|
|
ADDRGP4 trap_SendConsoleCommand
|
|
CALLV
|
|
pop
|
|
line 1163
|
|
;1163: level.restarted = qtrue;
|
|
ADDRGP4 level+68
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 1164
|
|
;1164: level.changemap = NULL;
|
|
ADDRGP4 level+9012
|
|
CNSTP4 0
|
|
ASGNP4
|
|
line 1165
|
|
;1165: level.intermissiontime = 0;
|
|
ADDRGP4 level+9008
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1166
|
|
;1166: }
|
|
line 1167
|
|
;1167: return;
|
|
ADDRGP4 $604
|
|
JUMPV
|
|
LABELV $608
|
|
line 1170
|
|
;1168: }
|
|
;1169:
|
|
;1170: DuelResetWinsLosses();
|
|
ADDRGP4 DuelResetWinsLosses
|
|
CALLV
|
|
pop
|
|
line 1171
|
|
;1171: }
|
|
LABELV $605
|
|
line 1174
|
|
;1172:
|
|
;1173:
|
|
;1174: trap_SendConsoleCommand( EXEC_APPEND, "vstr nextmap\n" );
|
|
CNSTI4 2
|
|
ARGI4
|
|
ADDRGP4 $617
|
|
ARGP4
|
|
ADDRGP4 trap_SendConsoleCommand
|
|
CALLV
|
|
pop
|
|
line 1175
|
|
;1175: level.changemap = NULL;
|
|
ADDRGP4 level+9012
|
|
CNSTP4 0
|
|
ASGNP4
|
|
line 1176
|
|
;1176: level.intermissiontime = 0;
|
|
ADDRGP4 level+9008
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1179
|
|
;1177:
|
|
;1178: // reset all the scores so we don't enter the intermission again
|
|
;1179: level.teamScores[TEAM_RED] = 0;
|
|
ADDRGP4 level+44+4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1180
|
|
;1180: level.teamScores[TEAM_BLUE] = 0;
|
|
ADDRGP4 level+44+8
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1181
|
|
;1181: for ( i=0 ; i< g_maxclients.integer ; i++ ) {
|
|
ADDRLP4 0
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 $627
|
|
JUMPV
|
|
LABELV $624
|
|
line 1182
|
|
;1182: cl = level.clients + i;
|
|
ADDRLP4 4
|
|
CNSTI4 1756
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
ASGNP4
|
|
line 1183
|
|
;1183: if ( cl->pers.connected != CON_CONNECTED ) {
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 1368
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
EQI4 $629
|
|
line 1184
|
|
;1184: continue;
|
|
ADDRGP4 $625
|
|
JUMPV
|
|
LABELV $629
|
|
line 1186
|
|
;1185: }
|
|
;1186: cl->ps.persistant[PERS_SCORE] = 0;
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 280
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1187
|
|
;1187: }
|
|
LABELV $625
|
|
line 1181
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
LABELV $627
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRGP4 g_maxclients+12
|
|
INDIRI4
|
|
LTI4 $624
|
|
line 1190
|
|
;1188:
|
|
;1189: // we need to do this here before chaning to CON_CONNECTING
|
|
;1190: G_WriteSessionData();
|
|
ADDRGP4 G_WriteSessionData
|
|
CALLV
|
|
pop
|
|
line 1194
|
|
;1191:
|
|
;1192: // change all client states to connecting, so the early players into the
|
|
;1193: // next level will know the others aren't done reconnecting
|
|
;1194: for (i=0 ; i< g_maxclients.integer ; i++) {
|
|
ADDRLP4 0
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 $634
|
|
JUMPV
|
|
LABELV $631
|
|
line 1195
|
|
;1195: if ( level.clients[i].pers.connected == CON_CONNECTED ) {
|
|
CNSTI4 1756
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 1368
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
NEI4 $636
|
|
line 1196
|
|
;1196: level.clients[i].pers.connected = CON_CONNECTING;
|
|
CNSTI4 1756
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 1368
|
|
ADDP4
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 1197
|
|
;1197: }
|
|
LABELV $636
|
|
line 1198
|
|
;1198: }
|
|
LABELV $632
|
|
line 1194
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
LABELV $634
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRGP4 g_maxclients+12
|
|
INDIRI4
|
|
LTI4 $631
|
|
line 1200
|
|
;1199:
|
|
;1200:}
|
|
LABELV $604
|
|
endproc ExitLevel 12 8
|
|
export G_LogPrintf
|
|
proc G_LogPrintf 1044 24
|
|
line 1209
|
|
;1201:
|
|
;1202:/*
|
|
;1203:=================
|
|
;1204:G_LogPrintf
|
|
;1205:
|
|
;1206:Print to the logfile with a time stamp if it is open
|
|
;1207:=================
|
|
;1208:*/
|
|
;1209:void QDECL G_LogPrintf( const char *fmt, ... ) {
|
|
line 1214
|
|
;1210: va_list argptr;
|
|
;1211: char string[1024];
|
|
;1212: int min, tens, sec;
|
|
;1213:
|
|
;1214: sec = level.time / 1000;
|
|
ADDRLP4 0
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 1000
|
|
DIVI4
|
|
ASGNI4
|
|
line 1216
|
|
;1215:
|
|
;1216: min = sec / 60;
|
|
ADDRLP4 1032
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 60
|
|
DIVI4
|
|
ASGNI4
|
|
line 1217
|
|
;1217: sec -= min * 60;
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 60
|
|
ADDRLP4 1032
|
|
INDIRI4
|
|
MULI4
|
|
SUBI4
|
|
ASGNI4
|
|
line 1218
|
|
;1218: tens = sec / 10;
|
|
ADDRLP4 1036
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 10
|
|
DIVI4
|
|
ASGNI4
|
|
line 1219
|
|
;1219: sec -= tens * 10;
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 10
|
|
ADDRLP4 1036
|
|
INDIRI4
|
|
MULI4
|
|
SUBI4
|
|
ASGNI4
|
|
line 1221
|
|
;1220:
|
|
;1221: Com_sprintf( string, sizeof(string), "%3i:%i%i ", min, tens, sec );
|
|
ADDRLP4 4
|
|
ARGP4
|
|
CNSTI4 1024
|
|
ARGI4
|
|
ADDRGP4 $640
|
|
ARGP4
|
|
ADDRLP4 1032
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 1036
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 Com_sprintf
|
|
CALLV
|
|
pop
|
|
line 1223
|
|
;1222:
|
|
;1223: va_start( argptr, fmt );
|
|
ADDRLP4 1028
|
|
ADDRFP4 0+4
|
|
ASGNP4
|
|
line 1224
|
|
;1224: vsprintf( string +7 , fmt,argptr );
|
|
ADDRLP4 4+7
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 1028
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 vsprintf
|
|
CALLI4
|
|
pop
|
|
line 1225
|
|
;1225: va_end( argptr );
|
|
ADDRLP4 1028
|
|
CNSTP4 0
|
|
ASGNP4
|
|
line 1227
|
|
;1226:
|
|
;1227: if ( g_dedicated.integer ) {
|
|
ADDRGP4 g_dedicated+12
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $643
|
|
line 1228
|
|
;1228: G_Printf( "%s", string + 7 );
|
|
ADDRGP4 $329
|
|
ARGP4
|
|
ADDRLP4 4+7
|
|
ARGP4
|
|
ADDRGP4 G_Printf
|
|
CALLV
|
|
pop
|
|
line 1229
|
|
;1229: }
|
|
LABELV $643
|
|
line 1231
|
|
;1230:
|
|
;1231: if ( !level.logFile ) {
|
|
ADDRGP4 level+20
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $647
|
|
line 1232
|
|
;1232: return;
|
|
ADDRGP4 $638
|
|
JUMPV
|
|
LABELV $647
|
|
line 1235
|
|
;1233: }
|
|
;1234:
|
|
;1235: trap_FS_Write( string, strlen( string ), level.logFile );
|
|
ADDRLP4 4
|
|
ARGP4
|
|
ADDRLP4 1040
|
|
ADDRGP4 strlen
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 4
|
|
ARGP4
|
|
ADDRLP4 1040
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 level+20
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 trap_FS_Write
|
|
CALLV
|
|
pop
|
|
line 1236
|
|
;1236:}
|
|
LABELV $638
|
|
endproc G_LogPrintf 1044 24
|
|
export LogExit
|
|
proc LogExit 36 20
|
|
line 1245
|
|
;1237:
|
|
;1238:/*
|
|
;1239:================
|
|
;1240:LogExit
|
|
;1241:
|
|
;1242:Append information about this game to the log file
|
|
;1243:================
|
|
;1244:*/
|
|
;1245:void LogExit( const char *string ) {
|
|
line 1248
|
|
;1246: int i, numSorted;
|
|
;1247: gclient_t *cl;
|
|
;1248: qboolean won = qtrue;
|
|
ADDRLP4 12
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 1249
|
|
;1249: G_LogPrintf( "Exit: %s\n", string );
|
|
ADDRGP4 $652
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 G_LogPrintf
|
|
CALLV
|
|
pop
|
|
line 1251
|
|
;1250:
|
|
;1251: level.intermissionQueued = level.time;
|
|
ADDRGP4 level+9004
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1255
|
|
;1252:
|
|
;1253: // this will keep the clients from playing any voice sounds
|
|
;1254: // that will get cut off when the queued intermission starts
|
|
;1255: trap_SetConfigstring( CS_INTERMISSION, "1" );
|
|
CNSTI4 22
|
|
ARGI4
|
|
ADDRGP4 $101
|
|
ARGP4
|
|
ADDRGP4 trap_SetConfigstring
|
|
CALLV
|
|
pop
|
|
line 1258
|
|
;1256:
|
|
;1257: // don't send more than 32 scores (FIXME?)
|
|
;1258: numSorted = level.numConnectedClients;
|
|
ADDRLP4 8
|
|
ADDRGP4 level+72
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1259
|
|
;1259: if ( numSorted > 32 ) {
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
CNSTI4 32
|
|
LEI4 $656
|
|
line 1260
|
|
;1260: numSorted = 32;
|
|
ADDRLP4 8
|
|
CNSTI4 32
|
|
ASGNI4
|
|
line 1261
|
|
;1261: }
|
|
LABELV $656
|
|
line 1263
|
|
;1262:
|
|
;1263: if ( g_gametype.integer >= GT_TEAM ) {
|
|
ADDRGP4 g_gametype+12
|
|
INDIRI4
|
|
CNSTI4 5
|
|
LTI4 $658
|
|
line 1264
|
|
;1264: G_LogPrintf( "red:%i blue:%i\n",
|
|
ADDRGP4 $661
|
|
ARGP4
|
|
ADDRGP4 level+44+4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 level+44+8
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 G_LogPrintf
|
|
CALLV
|
|
pop
|
|
line 1266
|
|
;1265: level.teamScores[TEAM_RED], level.teamScores[TEAM_BLUE] );
|
|
;1266: }
|
|
LABELV $658
|
|
line 1268
|
|
;1267:
|
|
;1268: for (i=0 ; i < numSorted ; i++) {
|
|
ADDRLP4 4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 $669
|
|
JUMPV
|
|
LABELV $666
|
|
line 1271
|
|
;1269: int ping;
|
|
;1270:
|
|
;1271: cl = &level.clients[level.sortedClients[i]];
|
|
ADDRLP4 0
|
|
CNSTI4 1756
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRGP4 level+84
|
|
ADDP4
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
ASGNP4
|
|
line 1273
|
|
;1272:
|
|
;1273: if ( cl->sess.sessionTeam == TEAM_SPECTATOR ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1520
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 3
|
|
NEI4 $671
|
|
line 1274
|
|
;1274: continue;
|
|
ADDRGP4 $667
|
|
JUMPV
|
|
LABELV $671
|
|
line 1276
|
|
;1275: }
|
|
;1276: if ( cl->pers.connected == CON_CONNECTING ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1368
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
NEI4 $673
|
|
line 1277
|
|
;1277: continue;
|
|
ADDRGP4 $667
|
|
JUMPV
|
|
LABELV $673
|
|
line 1280
|
|
;1278: }
|
|
;1279:
|
|
;1280: ping = cl->ps.ping < 999 ? cl->ps.ping : 999;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 484
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 999
|
|
GEI4 $676
|
|
ADDRLP4 20
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 484
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
ADDRGP4 $677
|
|
JUMPV
|
|
LABELV $676
|
|
ADDRLP4 20
|
|
CNSTI4 999
|
|
ASGNI4
|
|
LABELV $677
|
|
ADDRLP4 16
|
|
ADDRLP4 20
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1282
|
|
;1281:
|
|
;1282: G_LogPrintf( "score: %i ping: %i client: %i %s\n", cl->ps.persistant[PERS_SCORE], ping, level.sortedClients[i], cl->pers.netname );
|
|
ADDRGP4 $678
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 280
|
|
ADDP4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 16
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRGP4 level+84
|
|
ADDP4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1416
|
|
ADDP4
|
|
ARGP4
|
|
ADDRGP4 G_LogPrintf
|
|
CALLV
|
|
pop
|
|
line 1283
|
|
;1283: if (g_singlePlayer.integer && g_gametype.integer == GT_TOURNAMENT) {
|
|
ADDRGP4 g_singlePlayer+12
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $680
|
|
ADDRGP4 g_gametype+12
|
|
INDIRI4
|
|
CNSTI4 3
|
|
NEI4 $680
|
|
line 1284
|
|
;1284: if (g_entities[cl - level.clients].r.svFlags & SVF_BOT && cl->ps.persistant[PERS_RANK] == 0) {
|
|
ADDRLP4 32
|
|
CNSTI4 0
|
|
ASGNI4
|
|
CNSTI4 828
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
CVPU4 4
|
|
SUBU4
|
|
CVUI4 4
|
|
CNSTI4 1756
|
|
DIVI4
|
|
MULI4
|
|
ADDRGP4 g_entities+296+8
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 8
|
|
BANDI4
|
|
ADDRLP4 32
|
|
INDIRI4
|
|
EQI4 $684
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 288
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 32
|
|
INDIRI4
|
|
NEI4 $684
|
|
line 1285
|
|
;1285: won = qfalse;
|
|
ADDRLP4 12
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1286
|
|
;1286: }
|
|
LABELV $684
|
|
line 1287
|
|
;1287: }
|
|
LABELV $680
|
|
line 1288
|
|
;1288: }
|
|
LABELV $667
|
|
line 1268
|
|
ADDRLP4 4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
LABELV $669
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
LTI4 $666
|
|
line 1290
|
|
;1289:
|
|
;1290: if (g_singlePlayer.integer) {
|
|
ADDRGP4 g_singlePlayer+12
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $688
|
|
line 1291
|
|
;1291: if (g_gametype.integer >= GT_CTF) {
|
|
ADDRGP4 g_gametype+12
|
|
INDIRI4
|
|
CNSTI4 7
|
|
LTI4 $691
|
|
line 1292
|
|
;1292: won = level.teamScores[TEAM_RED] > level.teamScores[TEAM_BLUE];
|
|
ADDRGP4 level+44+4
|
|
INDIRI4
|
|
ADDRGP4 level+44+8
|
|
INDIRI4
|
|
LEI4 $699
|
|
ADDRLP4 16
|
|
CNSTI4 1
|
|
ASGNI4
|
|
ADDRGP4 $700
|
|
JUMPV
|
|
LABELV $699
|
|
ADDRLP4 16
|
|
CNSTI4 0
|
|
ASGNI4
|
|
LABELV $700
|
|
ADDRLP4 12
|
|
ADDRLP4 16
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1293
|
|
;1293: }
|
|
LABELV $691
|
|
line 1294
|
|
;1294: trap_SendConsoleCommand( EXEC_APPEND, (won) ? "spWin\n" : "spLose\n" );
|
|
CNSTI4 2
|
|
ARGI4
|
|
ADDRLP4 12
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $704
|
|
ADDRLP4 16
|
|
ADDRGP4 $701
|
|
ASGNP4
|
|
ADDRGP4 $705
|
|
JUMPV
|
|
LABELV $704
|
|
ADDRLP4 16
|
|
ADDRGP4 $702
|
|
ASGNP4
|
|
LABELV $705
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_SendConsoleCommand
|
|
CALLV
|
|
pop
|
|
line 1295
|
|
;1295: }
|
|
LABELV $688
|
|
line 1296
|
|
;1296:}
|
|
LABELV $651
|
|
endproc LogExit 36 20
|
|
data
|
|
export gDidDuelStuff
|
|
align 4
|
|
LABELV gDidDuelStuff
|
|
byte 4 0
|
|
export CheckIntermissionExit
|
|
code
|
|
proc CheckIntermissionExit 28 12
|
|
line 1310
|
|
;1297:
|
|
;1298:qboolean gDidDuelStuff = qfalse; //gets reset on game reinit
|
|
;1299:
|
|
;1300:/*
|
|
;1301:=================
|
|
;1302:CheckIntermissionExit
|
|
;1303:
|
|
;1304:The level will stay at the intermission for a minimum of 5 seconds
|
|
;1305:If all players wish to continue, the level will then exit.
|
|
;1306:If one or more players have not acknowledged the continue, the game will
|
|
;1307:wait 10 seconds before going on.
|
|
;1308:=================
|
|
;1309:*/
|
|
;1310:void CheckIntermissionExit( void ) {
|
|
line 1316
|
|
;1311: int ready, notReady;
|
|
;1312: int i;
|
|
;1313: gclient_t *cl;
|
|
;1314: int readyMask;
|
|
;1315:
|
|
;1316: if ( g_gametype.integer == GT_SINGLE_PLAYER ) {
|
|
ADDRGP4 g_gametype+12
|
|
INDIRI4
|
|
CNSTI4 4
|
|
NEI4 $707
|
|
line 1317
|
|
;1317: return;
|
|
ADDRGP4 $706
|
|
JUMPV
|
|
LABELV $707
|
|
line 1321
|
|
;1318: }
|
|
;1319:
|
|
;1320: // see which players are ready
|
|
;1321: ready = 0;
|
|
ADDRLP4 12
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1322
|
|
;1322: notReady = 0;
|
|
ADDRLP4 16
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1323
|
|
;1323: readyMask = 0;
|
|
ADDRLP4 8
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1324
|
|
;1324: for (i=0 ; i< g_maxclients.integer ; i++) {
|
|
ADDRLP4 0
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 $713
|
|
JUMPV
|
|
LABELV $710
|
|
line 1325
|
|
;1325: cl = level.clients + i;
|
|
ADDRLP4 4
|
|
CNSTI4 1756
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
ASGNP4
|
|
line 1326
|
|
;1326: if ( cl->pers.connected != CON_CONNECTED ) {
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 1368
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
EQI4 $715
|
|
line 1327
|
|
;1327: continue;
|
|
ADDRGP4 $711
|
|
JUMPV
|
|
LABELV $715
|
|
line 1329
|
|
;1328: }
|
|
;1329: if ( g_entities[cl->ps.clientNum].r.svFlags & SVF_BOT ) {
|
|
CNSTI4 828
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 144
|
|
ADDP4
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 g_entities+296+8
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 8
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $717
|
|
line 1330
|
|
;1330: continue;
|
|
ADDRGP4 $711
|
|
JUMPV
|
|
LABELV $717
|
|
line 1333
|
|
;1331: }
|
|
;1332:
|
|
;1333: if ( cl->readyToExit ) {
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 1572
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $721
|
|
line 1334
|
|
;1334: ready++;
|
|
ADDRLP4 12
|
|
ADDRLP4 12
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
line 1335
|
|
;1335: if ( i < 16 ) {
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 16
|
|
GEI4 $722
|
|
line 1336
|
|
;1336: readyMask |= 1 << i;
|
|
ADDRLP4 8
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
LSHI4
|
|
BORI4
|
|
ASGNI4
|
|
line 1337
|
|
;1337: }
|
|
line 1338
|
|
;1338: } else {
|
|
ADDRGP4 $722
|
|
JUMPV
|
|
LABELV $721
|
|
line 1339
|
|
;1339: notReady++;
|
|
ADDRLP4 16
|
|
ADDRLP4 16
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
line 1340
|
|
;1340: }
|
|
LABELV $722
|
|
line 1341
|
|
;1341: }
|
|
LABELV $711
|
|
line 1324
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
LABELV $713
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRGP4 g_maxclients+12
|
|
INDIRI4
|
|
LTI4 $710
|
|
line 1343
|
|
;1342:
|
|
;1343: if ( g_gametype.integer == GT_TOURNAMENT && !gDidDuelStuff &&
|
|
ADDRGP4 g_gametype+12
|
|
INDIRI4
|
|
CNSTI4 3
|
|
NEI4 $725
|
|
ADDRGP4 gDidDuelStuff
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $725
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ADDRGP4 level+9008
|
|
INDIRI4
|
|
CNSTI4 2000
|
|
ADDI4
|
|
LEI4 $725
|
|
line 1345
|
|
;1344: (level.time > level.intermissiontime + 2000) )
|
|
;1345: {
|
|
line 1346
|
|
;1346: gDidDuelStuff = qtrue;
|
|
ADDRGP4 gDidDuelStuff
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 1350
|
|
;1347:
|
|
;1348: // if we are running a tournement map, kick the loser to spectator status,
|
|
;1349: // which will automatically grab the next spectator and restart
|
|
;1350: if (!DuelLimitHit())
|
|
ADDRLP4 20
|
|
ADDRGP4 DuelLimitHit
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 20
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $730
|
|
line 1351
|
|
;1351: {
|
|
line 1352
|
|
;1352: RemoveTournamentLoser();
|
|
ADDRGP4 RemoveTournamentLoser
|
|
CALLV
|
|
pop
|
|
line 1354
|
|
;1353:
|
|
;1354: AddTournamentPlayer();
|
|
ADDRGP4 AddTournamentPlayer
|
|
CALLV
|
|
pop
|
|
line 1356
|
|
;1355:
|
|
;1356: if (level.numPlayingClients >= 2)
|
|
ADDRGP4 level+80
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LTI4 $706
|
|
line 1357
|
|
;1357: {
|
|
line 1358
|
|
;1358: trap_SetConfigstring ( CS_CLIENT_DUELISTS, va("%i|%i", level.sortedClients[0], level.sortedClients[1] ) );
|
|
ADDRGP4 $735
|
|
ARGP4
|
|
ADDRGP4 level+84
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 level+84+4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 24
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
CNSTI4 30
|
|
ARGI4
|
|
ADDRLP4 24
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_SetConfigstring
|
|
CALLV
|
|
pop
|
|
line 1359
|
|
;1359: trap_SetConfigstring ( CS_CLIENT_DUELWINNER, "-1" );
|
|
CNSTI4 29
|
|
ARGI4
|
|
ADDRGP4 $304
|
|
ARGP4
|
|
ADDRGP4 trap_SetConfigstring
|
|
CALLV
|
|
pop
|
|
line 1361
|
|
;1360:
|
|
;1361: gDuelist1 = level.sortedClients[0];
|
|
ADDRGP4 gDuelist1
|
|
ADDRGP4 level+84
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1362
|
|
;1362: gDuelist2 = level.sortedClients[1];
|
|
ADDRGP4 gDuelist2
|
|
ADDRGP4 level+84+4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1363
|
|
;1363: }
|
|
line 1365
|
|
;1364:
|
|
;1365: return;
|
|
ADDRGP4 $706
|
|
JUMPV
|
|
LABELV $730
|
|
line 1371
|
|
;1366: }
|
|
;1367:
|
|
;1368: //this means we hit the duel limit so reset the wins/losses
|
|
;1369: //but still push the loser to the back of the line, and retain the order for
|
|
;1370: //the map change
|
|
;1371: RemoveTournamentLoser();
|
|
ADDRGP4 RemoveTournamentLoser
|
|
CALLV
|
|
pop
|
|
line 1372
|
|
;1372: AddTournamentPlayer();
|
|
ADDRGP4 AddTournamentPlayer
|
|
CALLV
|
|
pop
|
|
line 1373
|
|
;1373: if (level.numPlayingClients >= 2)
|
|
ADDRGP4 level+80
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LTI4 $742
|
|
line 1374
|
|
;1374: {
|
|
line 1375
|
|
;1375: trap_SetConfigstring ( CS_CLIENT_DUELISTS, va("%i|%i", level.sortedClients[0], level.sortedClients[1] ) );
|
|
ADDRGP4 $735
|
|
ARGP4
|
|
ADDRGP4 level+84
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 level+84+4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 24
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
CNSTI4 30
|
|
ARGI4
|
|
ADDRLP4 24
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_SetConfigstring
|
|
CALLV
|
|
pop
|
|
line 1376
|
|
;1376: trap_SetConfigstring ( CS_CLIENT_DUELWINNER, "-1" );
|
|
CNSTI4 29
|
|
ARGI4
|
|
ADDRGP4 $304
|
|
ARGP4
|
|
ADDRGP4 trap_SetConfigstring
|
|
CALLV
|
|
pop
|
|
line 1378
|
|
;1377:
|
|
;1378: gDuelist1 = level.sortedClients[0];
|
|
ADDRGP4 gDuelist1
|
|
ADDRGP4 level+84
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1379
|
|
;1379: gDuelist2 = level.sortedClients[1];
|
|
ADDRGP4 gDuelist2
|
|
ADDRGP4 level+84+4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1380
|
|
;1380: }
|
|
LABELV $742
|
|
line 1381
|
|
;1381: }
|
|
LABELV $725
|
|
line 1383
|
|
;1382:
|
|
;1383: if (g_gametype.integer == GT_TOURNAMENT && !gDuelExit)
|
|
ADDRGP4 g_gametype+12
|
|
INDIRI4
|
|
CNSTI4 3
|
|
NEI4 $751
|
|
ADDRGP4 gDuelExit
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $751
|
|
line 1384
|
|
;1384: { //in duel, we have different behaviour for between-round intermissions
|
|
line 1385
|
|
;1385: if ( level.time > level.intermissiontime + 4000 )
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ADDRGP4 level+9008
|
|
INDIRI4
|
|
CNSTI4 4000
|
|
ADDI4
|
|
LEI4 $754
|
|
line 1386
|
|
;1386: { //automatically go to next after 4 seconds
|
|
line 1387
|
|
;1387: ExitLevel();
|
|
ADDRGP4 ExitLevel
|
|
CALLV
|
|
pop
|
|
line 1388
|
|
;1388: return;
|
|
ADDRGP4 $706
|
|
JUMPV
|
|
LABELV $754
|
|
line 1391
|
|
;1389: }
|
|
;1390:
|
|
;1391: for (i=0 ; i< g_maxclients.integer ; i++)
|
|
ADDRLP4 0
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 $761
|
|
JUMPV
|
|
LABELV $758
|
|
line 1392
|
|
;1392: { //being in a "ready" state is not necessary here, so clear it for everyone
|
|
line 1395
|
|
;1393: //yes, I also thinking holding this in a ps value uniquely for each player
|
|
;1394: //is bad and wrong, but it wasn't my idea.
|
|
;1395: cl = level.clients + i;
|
|
ADDRLP4 4
|
|
CNSTI4 1756
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
ASGNP4
|
|
line 1396
|
|
;1396: if ( cl->pers.connected != CON_CONNECTED )
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 1368
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
EQI4 $763
|
|
line 1397
|
|
;1397: {
|
|
line 1398
|
|
;1398: continue;
|
|
ADDRGP4 $759
|
|
JUMPV
|
|
LABELV $763
|
|
line 1400
|
|
;1399: }
|
|
;1400: cl->ps.stats[STAT_CLIENTS_READY] = 0;
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 244
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1401
|
|
;1401: }
|
|
LABELV $759
|
|
line 1391
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
LABELV $761
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRGP4 g_maxclients+12
|
|
INDIRI4
|
|
LTI4 $758
|
|
line 1402
|
|
;1402: return;
|
|
ADDRGP4 $706
|
|
JUMPV
|
|
LABELV $751
|
|
line 1407
|
|
;1403: }
|
|
;1404:
|
|
;1405: // copy the readyMask to each player's stats so
|
|
;1406: // it can be displayed on the scoreboard
|
|
;1407: for (i=0 ; i< g_maxclients.integer ; i++) {
|
|
ADDRLP4 0
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 $768
|
|
JUMPV
|
|
LABELV $765
|
|
line 1408
|
|
;1408: cl = level.clients + i;
|
|
ADDRLP4 4
|
|
CNSTI4 1756
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
ASGNP4
|
|
line 1409
|
|
;1409: if ( cl->pers.connected != CON_CONNECTED ) {
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 1368
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
EQI4 $770
|
|
line 1410
|
|
;1410: continue;
|
|
ADDRGP4 $766
|
|
JUMPV
|
|
LABELV $770
|
|
line 1412
|
|
;1411: }
|
|
;1412: cl->ps.stats[STAT_CLIENTS_READY] = readyMask;
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 244
|
|
ADDP4
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1413
|
|
;1413: }
|
|
LABELV $766
|
|
line 1407
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
LABELV $768
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRGP4 g_maxclients+12
|
|
INDIRI4
|
|
LTI4 $765
|
|
line 1416
|
|
;1414:
|
|
;1415: // never exit in less than five seconds
|
|
;1416: if ( level.time < level.intermissiontime + 5000 ) {
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ADDRGP4 level+9008
|
|
INDIRI4
|
|
CNSTI4 5000
|
|
ADDI4
|
|
GEI4 $772
|
|
line 1417
|
|
;1417: return;
|
|
ADDRGP4 $706
|
|
JUMPV
|
|
LABELV $772
|
|
line 1421
|
|
;1418: }
|
|
;1419:
|
|
;1420: // if nobody wants to go, clear timer
|
|
;1421: if ( !ready ) {
|
|
ADDRLP4 12
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $776
|
|
line 1422
|
|
;1422: level.readyToExit = qfalse;
|
|
ADDRGP4 level+9016
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1423
|
|
;1423: return;
|
|
ADDRGP4 $706
|
|
JUMPV
|
|
LABELV $776
|
|
line 1427
|
|
;1424: }
|
|
;1425:
|
|
;1426: // if everyone wants to go, go now
|
|
;1427: if ( !notReady ) {
|
|
ADDRLP4 16
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $779
|
|
line 1428
|
|
;1428: ExitLevel();
|
|
ADDRGP4 ExitLevel
|
|
CALLV
|
|
pop
|
|
line 1429
|
|
;1429: return;
|
|
ADDRGP4 $706
|
|
JUMPV
|
|
LABELV $779
|
|
line 1433
|
|
;1430: }
|
|
;1431:
|
|
;1432: // the first person to ready starts the ten second timeout
|
|
;1433: if ( !level.readyToExit ) {
|
|
ADDRGP4 level+9016
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $781
|
|
line 1434
|
|
;1434: level.readyToExit = qtrue;
|
|
ADDRGP4 level+9016
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 1435
|
|
;1435: level.exitTime = level.time;
|
|
ADDRGP4 level+9020
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1436
|
|
;1436: }
|
|
LABELV $781
|
|
line 1440
|
|
;1437:
|
|
;1438: // if we have waited ten seconds since at least one player
|
|
;1439: // wanted to exit, go ahead
|
|
;1440: if ( level.time < level.exitTime + 10000 ) {
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ADDRGP4 level+9020
|
|
INDIRI4
|
|
CNSTI4 10000
|
|
ADDI4
|
|
GEI4 $787
|
|
line 1441
|
|
;1441: return;
|
|
ADDRGP4 $706
|
|
JUMPV
|
|
LABELV $787
|
|
line 1444
|
|
;1442: }
|
|
;1443:
|
|
;1444: ExitLevel();
|
|
ADDRGP4 ExitLevel
|
|
CALLV
|
|
pop
|
|
line 1445
|
|
;1445:}
|
|
LABELV $706
|
|
endproc CheckIntermissionExit 28 12
|
|
export ScoreIsTied
|
|
proc ScoreIsTied 12 0
|
|
line 1452
|
|
;1446:
|
|
;1447:/*
|
|
;1448:=============
|
|
;1449:ScoreIsTied
|
|
;1450:=============
|
|
;1451:*/
|
|
;1452:qboolean ScoreIsTied( void ) {
|
|
line 1455
|
|
;1453: int a, b;
|
|
;1454:
|
|
;1455: if ( level.numPlayingClients < 2 ) {
|
|
ADDRGP4 level+80
|
|
INDIRI4
|
|
CNSTI4 2
|
|
GEI4 $792
|
|
line 1456
|
|
;1456: return qfalse;
|
|
CNSTI4 0
|
|
RETI4
|
|
ADDRGP4 $791
|
|
JUMPV
|
|
LABELV $792
|
|
line 1459
|
|
;1457: }
|
|
;1458:
|
|
;1459: if ( g_gametype.integer >= GT_TEAM ) {
|
|
ADDRGP4 g_gametype+12
|
|
INDIRI4
|
|
CNSTI4 5
|
|
LTI4 $795
|
|
line 1460
|
|
;1460: return level.teamScores[TEAM_RED] == level.teamScores[TEAM_BLUE];
|
|
ADDRGP4 level+44+4
|
|
INDIRI4
|
|
ADDRGP4 level+44+8
|
|
INDIRI4
|
|
NEI4 $803
|
|
ADDRLP4 8
|
|
CNSTI4 1
|
|
ASGNI4
|
|
ADDRGP4 $804
|
|
JUMPV
|
|
LABELV $803
|
|
ADDRLP4 8
|
|
CNSTI4 0
|
|
ASGNI4
|
|
LABELV $804
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
RETI4
|
|
ADDRGP4 $791
|
|
JUMPV
|
|
LABELV $795
|
|
line 1463
|
|
;1461: }
|
|
;1462:
|
|
;1463: a = level.clients[level.sortedClients[0]].ps.persistant[PERS_SCORE];
|
|
ADDRLP4 0
|
|
CNSTI4 1756
|
|
ADDRGP4 level+84
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 280
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1464
|
|
;1464: b = level.clients[level.sortedClients[1]].ps.persistant[PERS_SCORE];
|
|
ADDRLP4 4
|
|
CNSTI4 1756
|
|
ADDRGP4 level+84+4
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 280
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1466
|
|
;1465:
|
|
;1466: return a == b;
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
NEI4 $809
|
|
ADDRLP4 8
|
|
CNSTI4 1
|
|
ASGNI4
|
|
ADDRGP4 $810
|
|
JUMPV
|
|
LABELV $809
|
|
ADDRLP4 8
|
|
CNSTI4 0
|
|
ASGNI4
|
|
LABELV $810
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
RETI4
|
|
LABELV $791
|
|
endproc ScoreIsTied 12 0
|
|
export CheckExitRules
|
|
proc CheckExitRules 24 12
|
|
line 1478
|
|
;1467:}
|
|
;1468:
|
|
;1469:/*
|
|
;1470:=================
|
|
;1471:CheckExitRules
|
|
;1472:
|
|
;1473:There will be a delay between the time the exit is qualified for
|
|
;1474:and the time everyone is moved to the intermission spot, so you
|
|
;1475:can see the last frag.
|
|
;1476:=================
|
|
;1477:*/
|
|
;1478:void CheckExitRules( void ) {
|
|
line 1483
|
|
;1479: int i;
|
|
;1480: gclient_t *cl;
|
|
;1481: // if at the intermission, wait for all non-bots to
|
|
;1482: // signal ready, then go to next level
|
|
;1483: if ( level.intermissiontime ) {
|
|
ADDRGP4 level+9008
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $812
|
|
line 1484
|
|
;1484: CheckIntermissionExit ();
|
|
ADDRGP4 CheckIntermissionExit
|
|
CALLV
|
|
pop
|
|
line 1485
|
|
;1485: return;
|
|
ADDRGP4 $811
|
|
JUMPV
|
|
LABELV $812
|
|
line 1488
|
|
;1486: }
|
|
;1487:
|
|
;1488: if ( level.intermissionQueued ) {
|
|
ADDRGP4 level+9004
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $815
|
|
line 1489
|
|
;1489: int time = (g_singlePlayer.integer) ? SP_INTERMISSION_DELAY_TIME : INTERMISSION_DELAY_TIME;
|
|
ADDRGP4 g_singlePlayer+12
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $820
|
|
ADDRLP4 12
|
|
CNSTI4 5000
|
|
ASGNI4
|
|
ADDRGP4 $821
|
|
JUMPV
|
|
LABELV $820
|
|
ADDRLP4 12
|
|
CNSTI4 1000
|
|
ASGNI4
|
|
LABELV $821
|
|
ADDRLP4 8
|
|
ADDRLP4 12
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1490
|
|
;1490: if ( level.time - level.intermissionQueued >= time ) {
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ADDRGP4 level+9004
|
|
INDIRI4
|
|
SUBI4
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
LTI4 $811
|
|
line 1491
|
|
;1491: level.intermissionQueued = 0;
|
|
ADDRGP4 level+9004
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1492
|
|
;1492: BeginIntermission();
|
|
ADDRGP4 BeginIntermission
|
|
CALLV
|
|
pop
|
|
line 1493
|
|
;1493: }
|
|
line 1494
|
|
;1494: return;
|
|
ADDRGP4 $811
|
|
JUMPV
|
|
LABELV $815
|
|
line 1498
|
|
;1495: }
|
|
;1496:
|
|
;1497: // check for sudden death
|
|
;1498: if ( ScoreIsTied() ) {
|
|
ADDRLP4 8
|
|
ADDRGP4 ScoreIsTied
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $827
|
|
line 1500
|
|
;1499: // always wait for sudden death
|
|
;1500: return;
|
|
ADDRGP4 $811
|
|
JUMPV
|
|
LABELV $827
|
|
line 1503
|
|
;1501: }
|
|
;1502:
|
|
;1503: if ( g_timelimit.integer && !level.warmupTime ) {
|
|
ADDRLP4 12
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 g_timelimit+12
|
|
INDIRI4
|
|
ADDRLP4 12
|
|
INDIRI4
|
|
EQI4 $829
|
|
ADDRGP4 level+16
|
|
INDIRI4
|
|
ADDRLP4 12
|
|
INDIRI4
|
|
NEI4 $829
|
|
line 1504
|
|
;1504: if ( level.time - level.startTime >= g_timelimit.integer*60000 ) {
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ADDRGP4 level+40
|
|
INDIRI4
|
|
SUBI4
|
|
CNSTI4 60000
|
|
ADDRGP4 g_timelimit+12
|
|
INDIRI4
|
|
MULI4
|
|
LTI4 $833
|
|
line 1505
|
|
;1505: trap_SendServerCommand( -1, "print \"Timelimit hit.\n\"");
|
|
CNSTI4 -1
|
|
ARGI4
|
|
ADDRGP4 $838
|
|
ARGP4
|
|
ADDRGP4 trap_SendServerCommand
|
|
CALLV
|
|
pop
|
|
line 1506
|
|
;1506: LogExit( "Timelimit hit." );
|
|
ADDRGP4 $839
|
|
ARGP4
|
|
ADDRGP4 LogExit
|
|
CALLV
|
|
pop
|
|
line 1507
|
|
;1507: return;
|
|
ADDRGP4 $811
|
|
JUMPV
|
|
LABELV $833
|
|
line 1509
|
|
;1508: }
|
|
;1509: }
|
|
LABELV $829
|
|
line 1511
|
|
;1510:
|
|
;1511: if ( level.numPlayingClients < 2 ) {
|
|
ADDRGP4 level+80
|
|
INDIRI4
|
|
CNSTI4 2
|
|
GEI4 $840
|
|
line 1512
|
|
;1512: return;
|
|
ADDRGP4 $811
|
|
JUMPV
|
|
LABELV $840
|
|
line 1515
|
|
;1513: }
|
|
;1514:
|
|
;1515: if ( g_gametype.integer < GT_CTF && g_fraglimit.integer ) {
|
|
ADDRGP4 g_gametype+12
|
|
INDIRI4
|
|
CNSTI4 7
|
|
GEI4 $843
|
|
ADDRGP4 g_fraglimit+12
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $843
|
|
line 1516
|
|
;1516: if ( level.teamScores[TEAM_RED] >= g_fraglimit.integer ) {
|
|
ADDRGP4 level+44+4
|
|
INDIRI4
|
|
ADDRGP4 g_fraglimit+12
|
|
INDIRI4
|
|
LTI4 $847
|
|
line 1517
|
|
;1517: trap_SendServerCommand( -1, va("print \"Red %s\n\"", G_GetStripEdString("SVINGAME", "HIT_THE_KILL_LIMIT")) );
|
|
ADDRGP4 $853
|
|
ARGP4
|
|
ADDRGP4 $854
|
|
ARGP4
|
|
ADDRLP4 16
|
|
ADDRGP4 G_GetStripEdString
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRGP4 $852
|
|
ARGP4
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 20
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
CNSTI4 -1
|
|
ARGI4
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_SendServerCommand
|
|
CALLV
|
|
pop
|
|
line 1518
|
|
;1518: LogExit( "Kill limit hit." );
|
|
ADDRGP4 $855
|
|
ARGP4
|
|
ADDRGP4 LogExit
|
|
CALLV
|
|
pop
|
|
line 1519
|
|
;1519: return;
|
|
ADDRGP4 $811
|
|
JUMPV
|
|
LABELV $847
|
|
line 1522
|
|
;1520: }
|
|
;1521:
|
|
;1522: if ( level.teamScores[TEAM_BLUE] >= g_fraglimit.integer ) {
|
|
ADDRGP4 level+44+8
|
|
INDIRI4
|
|
ADDRGP4 g_fraglimit+12
|
|
INDIRI4
|
|
LTI4 $856
|
|
line 1523
|
|
;1523: trap_SendServerCommand( -1, va("print \"Blue %s\n\"", G_GetStripEdString("SVINGAME", "HIT_THE_KILL_LIMIT")) );
|
|
ADDRGP4 $853
|
|
ARGP4
|
|
ADDRGP4 $854
|
|
ARGP4
|
|
ADDRLP4 16
|
|
ADDRGP4 G_GetStripEdString
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRGP4 $861
|
|
ARGP4
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 20
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
CNSTI4 -1
|
|
ARGI4
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_SendServerCommand
|
|
CALLV
|
|
pop
|
|
line 1524
|
|
;1524: LogExit( "Kill limit hit." );
|
|
ADDRGP4 $855
|
|
ARGP4
|
|
ADDRGP4 LogExit
|
|
CALLV
|
|
pop
|
|
line 1525
|
|
;1525: return;
|
|
ADDRGP4 $811
|
|
JUMPV
|
|
LABELV $856
|
|
line 1528
|
|
;1526: }
|
|
;1527:
|
|
;1528: for ( i=0 ; i< g_maxclients.integer ; i++ ) {
|
|
ADDRLP4 4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 $865
|
|
JUMPV
|
|
LABELV $862
|
|
line 1529
|
|
;1529: cl = level.clients + i;
|
|
ADDRLP4 0
|
|
CNSTI4 1756
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
ASGNP4
|
|
line 1530
|
|
;1530: if ( cl->pers.connected != CON_CONNECTED ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1368
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
EQI4 $867
|
|
line 1531
|
|
;1531: continue;
|
|
ADDRGP4 $863
|
|
JUMPV
|
|
LABELV $867
|
|
line 1533
|
|
;1532: }
|
|
;1533: if ( cl->sess.sessionTeam != TEAM_FREE ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1520
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $869
|
|
line 1534
|
|
;1534: continue;
|
|
ADDRGP4 $863
|
|
JUMPV
|
|
LABELV $869
|
|
line 1537
|
|
;1535: }
|
|
;1536:
|
|
;1537: if ( g_gametype.integer == GT_TOURNAMENT && g_duel_fraglimit.integer && cl->sess.wins >= g_duel_fraglimit.integer )
|
|
ADDRGP4 g_gametype+12
|
|
INDIRI4
|
|
CNSTI4 3
|
|
NEI4 $871
|
|
ADDRGP4 g_duel_fraglimit+12
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $871
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1536
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRGP4 g_duel_fraglimit+12
|
|
INDIRI4
|
|
LTI4 $871
|
|
line 1538
|
|
;1538: {
|
|
line 1539
|
|
;1539: LogExit( "Duel limit hit." );
|
|
ADDRGP4 $876
|
|
ARGP4
|
|
ADDRGP4 LogExit
|
|
CALLV
|
|
pop
|
|
line 1540
|
|
;1540: gDuelExit = qtrue;
|
|
ADDRGP4 gDuelExit
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 1541
|
|
;1541: trap_SendServerCommand( -1, va("print \"%s" S_COLOR_WHITE " hit the win limit.\n\"",
|
|
ADDRGP4 $877
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1416
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 16
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
CNSTI4 -1
|
|
ARGI4
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_SendServerCommand
|
|
CALLV
|
|
pop
|
|
line 1543
|
|
;1542: cl->pers.netname ) );
|
|
;1543: return;
|
|
ADDRGP4 $811
|
|
JUMPV
|
|
LABELV $871
|
|
line 1546
|
|
;1544: }
|
|
;1545:
|
|
;1546: if ( cl->ps.persistant[PERS_SCORE] >= g_fraglimit.integer ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 280
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRGP4 g_fraglimit+12
|
|
INDIRI4
|
|
LTI4 $878
|
|
line 1547
|
|
;1547: LogExit( "Kill limit hit." );
|
|
ADDRGP4 $855
|
|
ARGP4
|
|
ADDRGP4 LogExit
|
|
CALLV
|
|
pop
|
|
line 1548
|
|
;1548: gDuelExit = qfalse;
|
|
ADDRGP4 gDuelExit
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1549
|
|
;1549: trap_SendServerCommand( -1, va("print \"%s" S_COLOR_WHITE " %s.\n\"",
|
|
ADDRGP4 $853
|
|
ARGP4
|
|
ADDRGP4 $854
|
|
ARGP4
|
|
ADDRLP4 16
|
|
ADDRGP4 G_GetStripEdString
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRGP4 $881
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1416
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 20
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
CNSTI4 -1
|
|
ARGI4
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_SendServerCommand
|
|
CALLV
|
|
pop
|
|
line 1554
|
|
;1550: cl->pers.netname,
|
|
;1551: G_GetStripEdString("SVINGAME", "HIT_THE_KILL_LIMIT")
|
|
;1552: )
|
|
;1553: );
|
|
;1554: return;
|
|
ADDRGP4 $811
|
|
JUMPV
|
|
LABELV $878
|
|
line 1556
|
|
;1555: }
|
|
;1556: }
|
|
LABELV $863
|
|
line 1528
|
|
ADDRLP4 4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
LABELV $865
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ADDRGP4 g_maxclients+12
|
|
INDIRI4
|
|
LTI4 $862
|
|
line 1557
|
|
;1557: }
|
|
LABELV $843
|
|
line 1559
|
|
;1558:
|
|
;1559: if ( g_gametype.integer >= GT_CTF && g_capturelimit.integer ) {
|
|
ADDRGP4 g_gametype+12
|
|
INDIRI4
|
|
CNSTI4 7
|
|
LTI4 $882
|
|
ADDRGP4 g_capturelimit+12
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $882
|
|
line 1561
|
|
;1560:
|
|
;1561: if ( level.teamScores[TEAM_RED] >= g_capturelimit.integer ) {
|
|
ADDRGP4 level+44+4
|
|
INDIRI4
|
|
ADDRGP4 g_capturelimit+12
|
|
INDIRI4
|
|
LTI4 $886
|
|
line 1562
|
|
;1562: trap_SendServerCommand( -1, "print \"Red hit the capturelimit.\n\"" );
|
|
CNSTI4 -1
|
|
ARGI4
|
|
ADDRGP4 $891
|
|
ARGP4
|
|
ADDRGP4 trap_SendServerCommand
|
|
CALLV
|
|
pop
|
|
line 1563
|
|
;1563: LogExit( "Capturelimit hit." );
|
|
ADDRGP4 $892
|
|
ARGP4
|
|
ADDRGP4 LogExit
|
|
CALLV
|
|
pop
|
|
line 1564
|
|
;1564: return;
|
|
ADDRGP4 $811
|
|
JUMPV
|
|
LABELV $886
|
|
line 1567
|
|
;1565: }
|
|
;1566:
|
|
;1567: if ( level.teamScores[TEAM_BLUE] >= g_capturelimit.integer ) {
|
|
ADDRGP4 level+44+8
|
|
INDIRI4
|
|
ADDRGP4 g_capturelimit+12
|
|
INDIRI4
|
|
LTI4 $893
|
|
line 1568
|
|
;1568: trap_SendServerCommand( -1, "print \"Blue hit the capturelimit.\n\"" );
|
|
CNSTI4 -1
|
|
ARGI4
|
|
ADDRGP4 $898
|
|
ARGP4
|
|
ADDRGP4 trap_SendServerCommand
|
|
CALLV
|
|
pop
|
|
line 1569
|
|
;1569: LogExit( "Capturelimit hit." );
|
|
ADDRGP4 $892
|
|
ARGP4
|
|
ADDRGP4 LogExit
|
|
CALLV
|
|
pop
|
|
line 1570
|
|
;1570: return;
|
|
LABELV $893
|
|
line 1572
|
|
;1571: }
|
|
;1572: }
|
|
LABELV $882
|
|
line 1573
|
|
;1573:}
|
|
LABELV $811
|
|
endproc CheckExitRules 24 12
|
|
export CheckTournament
|
|
proc CheckTournament 32 12
|
|
line 1592
|
|
;1574:
|
|
;1575:
|
|
;1576:
|
|
;1577:/*
|
|
;1578:========================================================================
|
|
;1579:
|
|
;1580:FUNCTIONS CALLED EVERY FRAME
|
|
;1581:
|
|
;1582:========================================================================
|
|
;1583:*/
|
|
;1584:
|
|
;1585:/*
|
|
;1586:=============
|
|
;1587:CheckTournament
|
|
;1588:
|
|
;1589:Once a frame, check for changes in tournement player state
|
|
;1590:=============
|
|
;1591:*/
|
|
;1592:void CheckTournament( void ) {
|
|
line 1595
|
|
;1593: // check because we run 3 game frames before calling Connect and/or ClientBegin
|
|
;1594: // for clients on a map_restart
|
|
;1595: if ( level.numPlayingClients == 0 ) {
|
|
ADDRGP4 level+80
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $900
|
|
line 1596
|
|
;1596: return;
|
|
ADDRGP4 $899
|
|
JUMPV
|
|
LABELV $900
|
|
line 1599
|
|
;1597: }
|
|
;1598:
|
|
;1599: if ( g_gametype.integer == GT_TOURNAMENT ) {
|
|
ADDRGP4 g_gametype+12
|
|
INDIRI4
|
|
CNSTI4 3
|
|
NEI4 $903
|
|
line 1602
|
|
;1600:
|
|
;1601: // pull in a spectator if needed
|
|
;1602: if ( level.numPlayingClients < 2 ) {
|
|
ADDRGP4 level+80
|
|
INDIRI4
|
|
CNSTI4 2
|
|
GEI4 $906
|
|
line 1603
|
|
;1603: AddTournamentPlayer();
|
|
ADDRGP4 AddTournamentPlayer
|
|
CALLV
|
|
pop
|
|
line 1605
|
|
;1604:
|
|
;1605: if (level.numPlayingClients >= 2)
|
|
ADDRGP4 level+80
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LTI4 $909
|
|
line 1606
|
|
;1606: {
|
|
line 1607
|
|
;1607: trap_SetConfigstring ( CS_CLIENT_DUELISTS, va("%i|%i", level.sortedClients[0], level.sortedClients[1] ) );
|
|
ADDRGP4 $735
|
|
ARGP4
|
|
ADDRGP4 level+84
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 level+84+4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 0
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
CNSTI4 30
|
|
ARGI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_SetConfigstring
|
|
CALLV
|
|
pop
|
|
line 1608
|
|
;1608: gDuelist1 = level.sortedClients[0];
|
|
ADDRGP4 gDuelist1
|
|
ADDRGP4 level+84
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1609
|
|
;1609: gDuelist2 = level.sortedClients[1];
|
|
ADDRGP4 gDuelist2
|
|
ADDRGP4 level+84+4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1610
|
|
;1610: }
|
|
LABELV $909
|
|
line 1611
|
|
;1611: }
|
|
LABELV $906
|
|
line 1613
|
|
;1612:
|
|
;1613: if (level.numPlayingClients >= 2)
|
|
ADDRGP4 level+80
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LTI4 $918
|
|
line 1614
|
|
;1614: {
|
|
line 1615
|
|
;1615: if (gDuelist1 == -1 ||
|
|
ADDRLP4 0
|
|
CNSTI4 -1
|
|
ASGNI4
|
|
ADDRGP4 gDuelist1
|
|
INDIRI4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
EQI4 $923
|
|
ADDRGP4 gDuelist2
|
|
INDIRI4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
NEI4 $921
|
|
LABELV $923
|
|
line 1617
|
|
;1616: gDuelist2 == -1)
|
|
;1617: {
|
|
line 1618
|
|
;1618: trap_SetConfigstring ( CS_CLIENT_DUELISTS, va("%i|%i", level.sortedClients[0], level.sortedClients[1] ) );
|
|
ADDRGP4 $735
|
|
ARGP4
|
|
ADDRGP4 level+84
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 level+84+4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 4
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
CNSTI4 30
|
|
ARGI4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_SetConfigstring
|
|
CALLV
|
|
pop
|
|
line 1619
|
|
;1619: gDuelist1 = level.sortedClients[0];
|
|
ADDRGP4 gDuelist1
|
|
ADDRGP4 level+84
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1620
|
|
;1620: gDuelist2 = level.sortedClients[1];
|
|
ADDRGP4 gDuelist2
|
|
ADDRGP4 level+84+4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1621
|
|
;1621: }
|
|
LABELV $921
|
|
line 1622
|
|
;1622: }
|
|
LABELV $918
|
|
line 1626
|
|
;1623:
|
|
;1624: //rww - It seems we have decided there will be no warmup in duel.
|
|
;1625: //if (!g_warmup.integer)
|
|
;1626: { //don't care about any of this stuff then, just add people and leave me alone
|
|
line 1627
|
|
;1627: level.warmupTime = 0;
|
|
ADDRGP4 level+16
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1628
|
|
;1628: return;
|
|
ADDRGP4 $899
|
|
JUMPV
|
|
LABELV $903
|
|
line 1675
|
|
;1629: }
|
|
;1630:#if 0
|
|
;1631: // if we don't have two players, go back to "waiting for players"
|
|
;1632: if ( level.numPlayingClients != 2 ) {
|
|
;1633: if ( level.warmupTime != -1 ) {
|
|
;1634: level.warmupTime = -1;
|
|
;1635: trap_SetConfigstring( CS_WARMUP, va("%i", level.warmupTime) );
|
|
;1636: G_LogPrintf( "Warmup:\n" );
|
|
;1637: }
|
|
;1638: return;
|
|
;1639: }
|
|
;1640:
|
|
;1641: if ( level.warmupTime == 0 ) {
|
|
;1642: return;
|
|
;1643: }
|
|
;1644:
|
|
;1645: // if the warmup is changed at the console, restart it
|
|
;1646: if ( g_warmup.modificationCount != level.warmupModificationCount ) {
|
|
;1647: level.warmupModificationCount = g_warmup.modificationCount;
|
|
;1648: level.warmupTime = -1;
|
|
;1649: }
|
|
;1650:
|
|
;1651: // if all players have arrived, start the countdown
|
|
;1652: if ( level.warmupTime < 0 ) {
|
|
;1653: if ( level.numPlayingClients == 2 ) {
|
|
;1654: // fudge by -1 to account for extra delays
|
|
;1655: level.warmupTime = level.time + ( g_warmup.integer - 1 ) * 1000;
|
|
;1656:
|
|
;1657: if (level.warmupTime < (level.time + 3000))
|
|
;1658: { //rww - this is an unpleasent hack to keep the level from resetting completely on the client (this happens when two map_restarts are issued rapidly)
|
|
;1659: level.warmupTime = level.time + 3000;
|
|
;1660: }
|
|
;1661: trap_SetConfigstring( CS_WARMUP, va("%i", level.warmupTime) );
|
|
;1662: }
|
|
;1663: return;
|
|
;1664: }
|
|
;1665:
|
|
;1666: // if the warmup time has counted down, restart
|
|
;1667: if ( level.time > level.warmupTime ) {
|
|
;1668: level.warmupTime += 10000;
|
|
;1669: trap_Cvar_Set( "g_restarted", "1" );
|
|
;1670: trap_SendConsoleCommand( EXEC_APPEND, "map_restart 0\n" );
|
|
;1671: level.restarted = qtrue;
|
|
;1672: return;
|
|
;1673: }
|
|
;1674:#endif
|
|
;1675: } else if ( g_gametype.integer != GT_SINGLE_PLAYER && level.warmupTime != 0 ) {
|
|
ADDRGP4 g_gametype+12
|
|
INDIRI4
|
|
CNSTI4 4
|
|
EQI4 $931
|
|
ADDRGP4 level+16
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $931
|
|
line 1677
|
|
;1676: int counts[TEAM_NUM_TEAMS];
|
|
;1677: qboolean notEnough = qfalse;
|
|
ADDRLP4 0
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1679
|
|
;1678:
|
|
;1679: if ( g_gametype.integer > GT_TEAM ) {
|
|
ADDRGP4 g_gametype+12
|
|
INDIRI4
|
|
CNSTI4 5
|
|
LEI4 $935
|
|
line 1680
|
|
;1680: counts[TEAM_BLUE] = TeamCount( -1, TEAM_BLUE );
|
|
CNSTI4 -1
|
|
ARGI4
|
|
CNSTI4 2
|
|
ARGI4
|
|
ADDRLP4 20
|
|
ADDRGP4 TeamCount
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 4+8
|
|
ADDRLP4 20
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1681
|
|
;1681: counts[TEAM_RED] = TeamCount( -1, TEAM_RED );
|
|
CNSTI4 -1
|
|
ARGI4
|
|
CNSTI4 1
|
|
ARGI4
|
|
ADDRLP4 24
|
|
ADDRGP4 TeamCount
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 4+4
|
|
ADDRLP4 24
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1683
|
|
;1682:
|
|
;1683: if (counts[TEAM_RED] < 1 || counts[TEAM_BLUE] < 1) {
|
|
ADDRLP4 28
|
|
CNSTI4 1
|
|
ASGNI4
|
|
ADDRLP4 4+4
|
|
INDIRI4
|
|
ADDRLP4 28
|
|
INDIRI4
|
|
LTI4 $944
|
|
ADDRLP4 4+8
|
|
INDIRI4
|
|
ADDRLP4 28
|
|
INDIRI4
|
|
GEI4 $936
|
|
LABELV $944
|
|
line 1684
|
|
;1684: notEnough = qtrue;
|
|
ADDRLP4 0
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 1685
|
|
;1685: }
|
|
line 1686
|
|
;1686: } else if ( level.numPlayingClients < 2 ) {
|
|
ADDRGP4 $936
|
|
JUMPV
|
|
LABELV $935
|
|
ADDRGP4 level+80
|
|
INDIRI4
|
|
CNSTI4 2
|
|
GEI4 $945
|
|
line 1687
|
|
;1687: notEnough = qtrue;
|
|
ADDRLP4 0
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 1688
|
|
;1688: }
|
|
LABELV $945
|
|
LABELV $936
|
|
line 1690
|
|
;1689:
|
|
;1690: if ( notEnough ) {
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $948
|
|
line 1691
|
|
;1691: if ( level.warmupTime != -1 ) {
|
|
ADDRGP4 level+16
|
|
INDIRI4
|
|
CNSTI4 -1
|
|
EQI4 $899
|
|
line 1692
|
|
;1692: level.warmupTime = -1;
|
|
ADDRGP4 level+16
|
|
CNSTI4 -1
|
|
ASGNI4
|
|
line 1693
|
|
;1693: trap_SetConfigstring( CS_WARMUP, va("%i", level.warmupTime) );
|
|
ADDRGP4 $375
|
|
ARGP4
|
|
ADDRGP4 level+16
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 20
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
CNSTI4 5
|
|
ARGI4
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_SetConfigstring
|
|
CALLV
|
|
pop
|
|
line 1694
|
|
;1694: G_LogPrintf( "Warmup:\n" );
|
|
ADDRGP4 $955
|
|
ARGP4
|
|
ADDRGP4 G_LogPrintf
|
|
CALLV
|
|
pop
|
|
line 1695
|
|
;1695: }
|
|
line 1696
|
|
;1696: return; // still waiting for team members
|
|
ADDRGP4 $899
|
|
JUMPV
|
|
LABELV $948
|
|
line 1699
|
|
;1697: }
|
|
;1698:
|
|
;1699: if ( level.warmupTime == 0 ) {
|
|
ADDRGP4 level+16
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $956
|
|
line 1700
|
|
;1700: return;
|
|
ADDRGP4 $899
|
|
JUMPV
|
|
LABELV $956
|
|
line 1704
|
|
;1701: }
|
|
;1702:
|
|
;1703: // if the warmup is changed at the console, restart it
|
|
;1704: if ( g_warmup.modificationCount != level.warmupModificationCount ) {
|
|
ADDRGP4 g_warmup+4
|
|
INDIRI4
|
|
ADDRGP4 level+224
|
|
INDIRI4
|
|
EQI4 $959
|
|
line 1705
|
|
;1705: level.warmupModificationCount = g_warmup.modificationCount;
|
|
ADDRGP4 level+224
|
|
ADDRGP4 g_warmup+4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1706
|
|
;1706: level.warmupTime = -1;
|
|
ADDRGP4 level+16
|
|
CNSTI4 -1
|
|
ASGNI4
|
|
line 1707
|
|
;1707: }
|
|
LABELV $959
|
|
line 1710
|
|
;1708:
|
|
;1709: // if all players have arrived, start the countdown
|
|
;1710: if ( level.warmupTime < 0 ) {
|
|
ADDRGP4 level+16
|
|
INDIRI4
|
|
CNSTI4 0
|
|
GEI4 $966
|
|
line 1712
|
|
;1711: // fudge by -1 to account for extra delays
|
|
;1712: level.warmupTime = level.time + ( g_warmup.integer - 1 ) * 1000;
|
|
ADDRLP4 20
|
|
CNSTI4 1000
|
|
ASGNI4
|
|
ADDRGP4 level+16
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ADDRLP4 20
|
|
INDIRI4
|
|
ADDRGP4 g_warmup+12
|
|
INDIRI4
|
|
MULI4
|
|
ADDRLP4 20
|
|
INDIRI4
|
|
SUBI4
|
|
ADDI4
|
|
ASGNI4
|
|
line 1713
|
|
;1713: trap_SetConfigstring( CS_WARMUP, va("%i", level.warmupTime) );
|
|
ADDRGP4 $375
|
|
ARGP4
|
|
ADDRGP4 level+16
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 24
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
CNSTI4 5
|
|
ARGI4
|
|
ADDRLP4 24
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_SetConfigstring
|
|
CALLV
|
|
pop
|
|
line 1714
|
|
;1714: return;
|
|
ADDRGP4 $899
|
|
JUMPV
|
|
LABELV $966
|
|
line 1718
|
|
;1715: }
|
|
;1716:
|
|
;1717: // if the warmup time has counted down, restart
|
|
;1718: if ( level.time > level.warmupTime ) {
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ADDRGP4 level+16
|
|
INDIRI4
|
|
LEI4 $973
|
|
line 1719
|
|
;1719: level.warmupTime += 10000;
|
|
ADDRLP4 20
|
|
ADDRGP4 level+16
|
|
ASGNP4
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 10000
|
|
ADDI4
|
|
ASGNI4
|
|
line 1720
|
|
;1720: trap_Cvar_Set( "g_restarted", "1" );
|
|
ADDRGP4 $85
|
|
ARGP4
|
|
ADDRGP4 $101
|
|
ARGP4
|
|
ADDRGP4 trap_Cvar_Set
|
|
CALLV
|
|
pop
|
|
line 1721
|
|
;1721: trap_SendConsoleCommand( EXEC_APPEND, "map_restart 0\n" );
|
|
CNSTI4 2
|
|
ARGI4
|
|
ADDRGP4 $613
|
|
ARGP4
|
|
ADDRGP4 trap_SendConsoleCommand
|
|
CALLV
|
|
pop
|
|
line 1722
|
|
;1722: level.restarted = qtrue;
|
|
ADDRGP4 level+68
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 1723
|
|
;1723: return;
|
|
LABELV $973
|
|
line 1725
|
|
;1724: }
|
|
;1725: }
|
|
LABELV $931
|
|
line 1726
|
|
;1726:}
|
|
LABELV $899
|
|
endproc CheckTournament 32 12
|
|
export CheckVote
|
|
proc CheckVote 24 8
|
|
line 1734
|
|
;1727:
|
|
;1728:
|
|
;1729:/*
|
|
;1730:==================
|
|
;1731:CheckVote
|
|
;1732:==================
|
|
;1733:*/
|
|
;1734:void CheckVote( void ) {
|
|
line 1735
|
|
;1735: if ( level.voteExecuteTime && level.voteExecuteTime < level.time ) {
|
|
ADDRGP4 level+2280
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $980
|
|
ADDRGP4 level+2280
|
|
INDIRI4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
GEI4 $980
|
|
line 1736
|
|
;1736: level.voteExecuteTime = 0;
|
|
ADDRGP4 level+2280
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1737
|
|
;1737: trap_SendConsoleCommand( EXEC_APPEND, va("%s\n", level.voteString ) );
|
|
ADDRGP4 $986
|
|
ARGP4
|
|
ADDRGP4 level+228
|
|
ARGP4
|
|
ADDRLP4 0
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
CNSTI4 2
|
|
ARGI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_SendConsoleCommand
|
|
CALLV
|
|
pop
|
|
line 1739
|
|
;1738:
|
|
;1739: if (level.votingGametype)
|
|
ADDRGP4 level+2296
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $988
|
|
line 1740
|
|
;1740: {
|
|
line 1741
|
|
;1741: if (trap_Cvar_VariableIntegerValue("g_gametype") != level.votingGametypeTo)
|
|
ADDRGP4 $88
|
|
ARGP4
|
|
ADDRLP4 4
|
|
ADDRGP4 trap_Cvar_VariableIntegerValue
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ADDRGP4 level+2300
|
|
INDIRI4
|
|
EQI4 $991
|
|
line 1742
|
|
;1742: { //If we're voting to a different game type, be sure to refresh all the map stuff
|
|
line 1743
|
|
;1743: const char *nextMap = G_RefreshNextMap(level.votingGametypeTo, qtrue);
|
|
ADDRGP4 level+2300
|
|
INDIRI4
|
|
ARGI4
|
|
CNSTI4 1
|
|
ARGI4
|
|
ADDRLP4 12
|
|
ADDRGP4 G_RefreshNextMap
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 8
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
ASGNP4
|
|
line 1745
|
|
;1744:
|
|
;1745: if (nextMap && nextMap[0])
|
|
ADDRLP4 16
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $992
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 0
|
|
EQI4 $992
|
|
line 1746
|
|
;1746: {
|
|
line 1747
|
|
;1747: trap_SendConsoleCommand( EXEC_APPEND, va("map %s\n", nextMap ) );
|
|
ADDRGP4 $997
|
|
ARGP4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 20
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
CNSTI4 2
|
|
ARGI4
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_SendConsoleCommand
|
|
CALLV
|
|
pop
|
|
line 1748
|
|
;1748: }
|
|
line 1750
|
|
;1749:
|
|
;1750: }
|
|
ADDRGP4 $992
|
|
JUMPV
|
|
LABELV $991
|
|
line 1752
|
|
;1751: else
|
|
;1752: { //otherwise, just leave the map until a restart
|
|
line 1753
|
|
;1753: G_RefreshNextMap(level.votingGametypeTo, qfalse);
|
|
ADDRGP4 level+2300
|
|
INDIRI4
|
|
ARGI4
|
|
CNSTI4 0
|
|
ARGI4
|
|
ADDRGP4 G_RefreshNextMap
|
|
CALLP4
|
|
pop
|
|
line 1754
|
|
;1754: }
|
|
LABELV $992
|
|
line 1755
|
|
;1755: level.votingGametype = qfalse;
|
|
ADDRGP4 level+2296
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1756
|
|
;1756: level.votingGametypeTo = 0;
|
|
ADDRGP4 level+2300
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1757
|
|
;1757: }
|
|
LABELV $988
|
|
line 1758
|
|
;1758: }
|
|
LABELV $980
|
|
line 1759
|
|
;1759: if ( !level.voteTime ) {
|
|
ADDRGP4 level+2276
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $1001
|
|
line 1760
|
|
;1760: return;
|
|
ADDRGP4 $979
|
|
JUMPV
|
|
LABELV $1001
|
|
line 1762
|
|
;1761: }
|
|
;1762: if ( level.time - level.voteTime >= VOTE_TIME ) {
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ADDRGP4 level+2276
|
|
INDIRI4
|
|
SUBI4
|
|
CNSTI4 30000
|
|
LTI4 $1004
|
|
line 1763
|
|
;1763: trap_SendServerCommand( -1, va("print \"%s\n\"", G_GetStripEdString("SVINGAME", "VOTEFAILED")) );
|
|
ADDRGP4 $853
|
|
ARGP4
|
|
ADDRGP4 $1009
|
|
ARGP4
|
|
ADDRLP4 0
|
|
ADDRGP4 G_GetStripEdString
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRGP4 $1008
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 4
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
CNSTI4 -1
|
|
ARGI4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_SendServerCommand
|
|
CALLV
|
|
pop
|
|
line 1764
|
|
;1764: } else {
|
|
ADDRGP4 $1005
|
|
JUMPV
|
|
LABELV $1004
|
|
line 1765
|
|
;1765: if ( level.voteYes > level.numVotingClients/2 ) {
|
|
ADDRGP4 level+2284
|
|
INDIRI4
|
|
ADDRGP4 level+2292
|
|
INDIRI4
|
|
CNSTI4 2
|
|
DIVI4
|
|
LEI4 $1010
|
|
line 1767
|
|
;1766: // execute the command, then remove the vote
|
|
;1767: trap_SendServerCommand( -1, va("print \"%s\n\"", G_GetStripEdString("SVINGAME", "VOTEPASSED")) );
|
|
ADDRGP4 $853
|
|
ARGP4
|
|
ADDRGP4 $1014
|
|
ARGP4
|
|
ADDRLP4 0
|
|
ADDRGP4 G_GetStripEdString
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRGP4 $1008
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 4
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
CNSTI4 -1
|
|
ARGI4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_SendServerCommand
|
|
CALLV
|
|
pop
|
|
line 1768
|
|
;1768: level.voteExecuteTime = level.time + 3000;
|
|
ADDRGP4 level+2280
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 3000
|
|
ADDI4
|
|
ASGNI4
|
|
line 1769
|
|
;1769: } else if ( level.voteNo >= level.numVotingClients/2 ) {
|
|
ADDRGP4 $1011
|
|
JUMPV
|
|
LABELV $1010
|
|
ADDRGP4 level+2288
|
|
INDIRI4
|
|
ADDRGP4 level+2292
|
|
INDIRI4
|
|
CNSTI4 2
|
|
DIVI4
|
|
LTI4 $979
|
|
line 1771
|
|
;1770: // same behavior as a timeout
|
|
;1771: trap_SendServerCommand( -1, va("print \"%s\n\"", G_GetStripEdString("SVINGAME", "VOTEFAILED")) );
|
|
ADDRGP4 $853
|
|
ARGP4
|
|
ADDRGP4 $1009
|
|
ARGP4
|
|
ADDRLP4 0
|
|
ADDRGP4 G_GetStripEdString
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRGP4 $1008
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 4
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
CNSTI4 -1
|
|
ARGI4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_SendServerCommand
|
|
CALLV
|
|
pop
|
|
line 1772
|
|
;1772: } else {
|
|
line 1774
|
|
;1773: // still waiting for a majority
|
|
;1774: return;
|
|
LABELV $1018
|
|
LABELV $1011
|
|
line 1776
|
|
;1775: }
|
|
;1776: }
|
|
LABELV $1005
|
|
line 1777
|
|
;1777: level.voteTime = 0;
|
|
ADDRGP4 level+2276
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1778
|
|
;1778: trap_SetConfigstring( CS_VOTE_TIME, "" );
|
|
CNSTI4 8
|
|
ARGI4
|
|
ADDRGP4 $80
|
|
ARGP4
|
|
ADDRGP4 trap_SetConfigstring
|
|
CALLV
|
|
pop
|
|
line 1780
|
|
;1779:
|
|
;1780:}
|
|
LABELV $979
|
|
endproc CheckVote 24 8
|
|
export PrintTeam
|
|
proc PrintTeam 4 8
|
|
line 1787
|
|
;1781:
|
|
;1782:/*
|
|
;1783:==================
|
|
;1784:PrintTeam
|
|
;1785:==================
|
|
;1786:*/
|
|
;1787:void PrintTeam(int team, char *message) {
|
|
line 1790
|
|
;1788: int i;
|
|
;1789:
|
|
;1790: for ( i = 0 ; i < level.maxclients ; i++ ) {
|
|
ADDRLP4 0
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 $1026
|
|
JUMPV
|
|
LABELV $1023
|
|
line 1791
|
|
;1791: if (level.clients[i].sess.sessionTeam != team)
|
|
CNSTI4 1756
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 1520
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRFP4 0
|
|
INDIRI4
|
|
EQI4 $1028
|
|
line 1792
|
|
;1792: continue;
|
|
ADDRGP4 $1024
|
|
JUMPV
|
|
LABELV $1028
|
|
line 1793
|
|
;1793: trap_SendServerCommand( i, message );
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_SendServerCommand
|
|
CALLV
|
|
pop
|
|
line 1794
|
|
;1794: }
|
|
LABELV $1024
|
|
line 1790
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
LABELV $1026
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRGP4 level+24
|
|
INDIRI4
|
|
LTI4 $1023
|
|
line 1795
|
|
;1795:}
|
|
LABELV $1022
|
|
endproc PrintTeam 4 8
|
|
export SetLeader
|
|
proc SetLeader 12 12
|
|
line 1802
|
|
;1796:
|
|
;1797:/*
|
|
;1798:==================
|
|
;1799:SetLeader
|
|
;1800:==================
|
|
;1801:*/
|
|
;1802:void SetLeader(int team, int client) {
|
|
line 1805
|
|
;1803: int i;
|
|
;1804:
|
|
;1805: if ( level.clients[client].pers.connected == CON_DISCONNECTED ) {
|
|
CNSTI4 1756
|
|
ADDRFP4 4
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 1368
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $1031
|
|
line 1806
|
|
;1806: PrintTeam(team, va("print \"%s is not connected\n\"", level.clients[client].pers.netname) );
|
|
ADDRGP4 $1033
|
|
ARGP4
|
|
CNSTI4 1756
|
|
ADDRFP4 4
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 1416
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 4
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRFP4 0
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 PrintTeam
|
|
CALLV
|
|
pop
|
|
line 1807
|
|
;1807: return;
|
|
ADDRGP4 $1030
|
|
JUMPV
|
|
LABELV $1031
|
|
line 1809
|
|
;1808: }
|
|
;1809: if (level.clients[client].sess.sessionTeam != team) {
|
|
CNSTI4 1756
|
|
ADDRFP4 4
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 1520
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRFP4 0
|
|
INDIRI4
|
|
EQI4 $1034
|
|
line 1810
|
|
;1810: PrintTeam(team, va("print \"%s is not on the team anymore\n\"", level.clients[client].pers.netname) );
|
|
ADDRGP4 $1036
|
|
ARGP4
|
|
CNSTI4 1756
|
|
ADDRFP4 4
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 1416
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 4
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRFP4 0
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 PrintTeam
|
|
CALLV
|
|
pop
|
|
line 1811
|
|
;1811: return;
|
|
ADDRGP4 $1030
|
|
JUMPV
|
|
LABELV $1034
|
|
line 1813
|
|
;1812: }
|
|
;1813: for ( i = 0 ; i < level.maxclients ; i++ ) {
|
|
ADDRLP4 0
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 $1040
|
|
JUMPV
|
|
LABELV $1037
|
|
line 1814
|
|
;1814: if (level.clients[i].sess.sessionTeam != team)
|
|
CNSTI4 1756
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 1520
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRFP4 0
|
|
INDIRI4
|
|
EQI4 $1042
|
|
line 1815
|
|
;1815: continue;
|
|
ADDRGP4 $1038
|
|
JUMPV
|
|
LABELV $1042
|
|
line 1816
|
|
;1816: if (level.clients[i].sess.teamLeader) {
|
|
CNSTI4 1756
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 1560
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $1044
|
|
line 1817
|
|
;1817: level.clients[i].sess.teamLeader = qfalse;
|
|
CNSTI4 1756
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 1560
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1818
|
|
;1818: ClientUserinfoChanged(i);
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 ClientUserinfoChanged
|
|
CALLV
|
|
pop
|
|
line 1819
|
|
;1819: }
|
|
LABELV $1044
|
|
line 1820
|
|
;1820: }
|
|
LABELV $1038
|
|
line 1813
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
LABELV $1040
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRGP4 level+24
|
|
INDIRI4
|
|
LTI4 $1037
|
|
line 1821
|
|
;1821: level.clients[client].sess.teamLeader = qtrue;
|
|
CNSTI4 1756
|
|
ADDRFP4 4
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 1560
|
|
ADDP4
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 1822
|
|
;1822: ClientUserinfoChanged( client );
|
|
ADDRFP4 4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 ClientUserinfoChanged
|
|
CALLV
|
|
pop
|
|
line 1823
|
|
;1823: PrintTeam(team, va("print \"%s %s\n\"", level.clients[client].pers.netname, G_GetStripEdString("SVINGAME", "NEWTEAMLEADER")) );
|
|
ADDRGP4 $853
|
|
ARGP4
|
|
ADDRGP4 $1047
|
|
ARGP4
|
|
ADDRLP4 4
|
|
ADDRGP4 G_GetStripEdString
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRGP4 $1046
|
|
ARGP4
|
|
CNSTI4 1756
|
|
ADDRFP4 4
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 1416
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 8
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRFP4 0
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 PrintTeam
|
|
CALLV
|
|
pop
|
|
line 1824
|
|
;1824:}
|
|
LABELV $1030
|
|
endproc SetLeader 12 12
|
|
export CheckTeamLeader
|
|
proc CheckTeamLeader 4 0
|
|
line 1831
|
|
;1825:
|
|
;1826:/*
|
|
;1827:==================
|
|
;1828:CheckTeamLeader
|
|
;1829:==================
|
|
;1830:*/
|
|
;1831:void CheckTeamLeader( int team ) {
|
|
line 1834
|
|
;1832: int i;
|
|
;1833:
|
|
;1834: for ( i = 0 ; i < level.maxclients ; i++ ) {
|
|
ADDRLP4 0
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 $1052
|
|
JUMPV
|
|
LABELV $1049
|
|
line 1835
|
|
;1835: if (level.clients[i].sess.sessionTeam != team)
|
|
CNSTI4 1756
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 1520
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRFP4 0
|
|
INDIRI4
|
|
EQI4 $1054
|
|
line 1836
|
|
;1836: continue;
|
|
ADDRGP4 $1050
|
|
JUMPV
|
|
LABELV $1054
|
|
line 1837
|
|
;1837: if (level.clients[i].sess.teamLeader)
|
|
CNSTI4 1756
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 1560
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $1056
|
|
line 1838
|
|
;1838: break;
|
|
ADDRGP4 $1051
|
|
JUMPV
|
|
LABELV $1056
|
|
line 1839
|
|
;1839: }
|
|
LABELV $1050
|
|
line 1834
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
LABELV $1052
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRGP4 level+24
|
|
INDIRI4
|
|
LTI4 $1049
|
|
LABELV $1051
|
|
line 1840
|
|
;1840: if (i >= level.maxclients) {
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRGP4 level+24
|
|
INDIRI4
|
|
LTI4 $1058
|
|
line 1841
|
|
;1841: for ( i = 0 ; i < level.maxclients ; i++ ) {
|
|
ADDRLP4 0
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 $1064
|
|
JUMPV
|
|
LABELV $1061
|
|
line 1842
|
|
;1842: if (level.clients[i].sess.sessionTeam != team)
|
|
CNSTI4 1756
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 1520
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRFP4 0
|
|
INDIRI4
|
|
EQI4 $1066
|
|
line 1843
|
|
;1843: continue;
|
|
ADDRGP4 $1062
|
|
JUMPV
|
|
LABELV $1066
|
|
line 1844
|
|
;1844: if (!(g_entities[i].r.svFlags & SVF_BOT)) {
|
|
CNSTI4 828
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 g_entities+296+8
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 8
|
|
BANDI4
|
|
CNSTI4 0
|
|
NEI4 $1068
|
|
line 1845
|
|
;1845: level.clients[i].sess.teamLeader = qtrue;
|
|
CNSTI4 1756
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 1560
|
|
ADDP4
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 1846
|
|
;1846: break;
|
|
ADDRGP4 $1063
|
|
JUMPV
|
|
LABELV $1068
|
|
line 1848
|
|
;1847: }
|
|
;1848: }
|
|
LABELV $1062
|
|
line 1841
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
LABELV $1064
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRGP4 level+24
|
|
INDIRI4
|
|
LTI4 $1061
|
|
LABELV $1063
|
|
line 1849
|
|
;1849: for ( i = 0 ; i < level.maxclients ; i++ ) {
|
|
ADDRLP4 0
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 $1075
|
|
JUMPV
|
|
LABELV $1072
|
|
line 1850
|
|
;1850: if (level.clients[i].sess.sessionTeam != team)
|
|
CNSTI4 1756
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 1520
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRFP4 0
|
|
INDIRI4
|
|
EQI4 $1077
|
|
line 1851
|
|
;1851: continue;
|
|
ADDRGP4 $1073
|
|
JUMPV
|
|
LABELV $1077
|
|
line 1852
|
|
;1852: level.clients[i].sess.teamLeader = qtrue;
|
|
CNSTI4 1756
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 1560
|
|
ADDP4
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 1853
|
|
;1853: break;
|
|
ADDRGP4 $1074
|
|
JUMPV
|
|
LABELV $1073
|
|
line 1849
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
LABELV $1075
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRGP4 level+24
|
|
INDIRI4
|
|
LTI4 $1072
|
|
LABELV $1074
|
|
line 1855
|
|
;1854: }
|
|
;1855: }
|
|
LABELV $1058
|
|
line 1856
|
|
;1856:}
|
|
LABELV $1048
|
|
endproc CheckTeamLeader 4 0
|
|
export CheckTeamVote
|
|
proc CheckTeamVote 28 12
|
|
line 1863
|
|
;1857:
|
|
;1858:/*
|
|
;1859:==================
|
|
;1860:CheckTeamVote
|
|
;1861:==================
|
|
;1862:*/
|
|
;1863:void CheckTeamVote( int team ) {
|
|
line 1866
|
|
;1864: int cs_offset;
|
|
;1865:
|
|
;1866: if ( team == TEAM_RED )
|
|
ADDRFP4 0
|
|
INDIRI4
|
|
CNSTI4 1
|
|
NEI4 $1080
|
|
line 1867
|
|
;1867: cs_offset = 0;
|
|
ADDRLP4 0
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 $1081
|
|
JUMPV
|
|
LABELV $1080
|
|
line 1868
|
|
;1868: else if ( team == TEAM_BLUE )
|
|
ADDRFP4 0
|
|
INDIRI4
|
|
CNSTI4 2
|
|
NEI4 $1079
|
|
line 1869
|
|
;1869: cs_offset = 1;
|
|
ADDRLP4 0
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 1871
|
|
;1870: else
|
|
;1871: return;
|
|
LABELV $1083
|
|
LABELV $1081
|
|
line 1873
|
|
;1872:
|
|
;1873: if ( !level.teamVoteTime[cs_offset] ) {
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRGP4 level+4352
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $1084
|
|
line 1874
|
|
;1874: return;
|
|
ADDRGP4 $1079
|
|
JUMPV
|
|
LABELV $1084
|
|
line 1876
|
|
;1875: }
|
|
;1876: if ( level.time - level.teamVoteTime[cs_offset] >= VOTE_TIME ) {
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRGP4 level+4352
|
|
ADDP4
|
|
INDIRI4
|
|
SUBI4
|
|
CNSTI4 30000
|
|
LTI4 $1087
|
|
line 1877
|
|
;1877: trap_SendServerCommand( -1, va("print \"%s\n\"", G_GetStripEdString("SVINGAME", "TEAMVOTEFAILED")) );
|
|
ADDRGP4 $853
|
|
ARGP4
|
|
ADDRGP4 $1091
|
|
ARGP4
|
|
ADDRLP4 4
|
|
ADDRGP4 G_GetStripEdString
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRGP4 $1008
|
|
ARGP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 8
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
CNSTI4 -1
|
|
ARGI4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_SendServerCommand
|
|
CALLV
|
|
pop
|
|
line 1878
|
|
;1878: } else {
|
|
ADDRGP4 $1088
|
|
JUMPV
|
|
LABELV $1087
|
|
line 1879
|
|
;1879: if ( level.teamVoteYes[cs_offset] > level.numteamVotingClients[cs_offset]/2 ) {
|
|
ADDRLP4 4
|
|
CNSTI4 2
|
|
ASGNI4
|
|
ADDRLP4 8
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
LSHI4
|
|
ASGNI4
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
ADDRGP4 level+4360
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
ADDRGP4 level+4376
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
DIVI4
|
|
LEI4 $1092
|
|
line 1881
|
|
;1880: // execute the command, then remove the vote
|
|
;1881: trap_SendServerCommand( -1, va("print \"%s\n\"", G_GetStripEdString("SVINGAME", "TEAMVOTEPASSED")) );
|
|
ADDRGP4 $853
|
|
ARGP4
|
|
ADDRGP4 $1096
|
|
ARGP4
|
|
ADDRLP4 12
|
|
ADDRGP4 G_GetStripEdString
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRGP4 $1008
|
|
ARGP4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 16
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
CNSTI4 -1
|
|
ARGI4
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_SendServerCommand
|
|
CALLV
|
|
pop
|
|
line 1883
|
|
;1882: //
|
|
;1883: if ( !Q_strncmp( "leader", level.teamVoteString[cs_offset], 6) ) {
|
|
ADDRGP4 $1099
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 10
|
|
LSHI4
|
|
ADDRGP4 level+2304
|
|
ADDP4
|
|
ARGP4
|
|
CNSTI4 6
|
|
ARGI4
|
|
ADDRLP4 20
|
|
ADDRGP4 Q_strncmp
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 20
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $1097
|
|
line 1885
|
|
;1884: //set the team leader
|
|
;1885: SetLeader(team, atoi(level.teamVoteString[cs_offset] + 7));
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 10
|
|
LSHI4
|
|
ADDRGP4 level+2304+7
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 24
|
|
ADDRGP4 atoi
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRFP4 0
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 24
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 SetLeader
|
|
CALLV
|
|
pop
|
|
line 1886
|
|
;1886: }
|
|
ADDRGP4 $1093
|
|
JUMPV
|
|
LABELV $1097
|
|
line 1887
|
|
;1887: else {
|
|
line 1888
|
|
;1888: trap_SendConsoleCommand( EXEC_APPEND, va("%s\n", level.teamVoteString[cs_offset] ) );
|
|
ADDRGP4 $986
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 10
|
|
LSHI4
|
|
ADDRGP4 level+2304
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 24
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
CNSTI4 2
|
|
ARGI4
|
|
ADDRLP4 24
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_SendConsoleCommand
|
|
CALLV
|
|
pop
|
|
line 1889
|
|
;1889: }
|
|
line 1890
|
|
;1890: } else if ( level.teamVoteNo[cs_offset] >= level.numteamVotingClients[cs_offset]/2 ) {
|
|
ADDRGP4 $1093
|
|
JUMPV
|
|
LABELV $1092
|
|
ADDRLP4 12
|
|
CNSTI4 2
|
|
ASGNI4
|
|
ADDRLP4 16
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRLP4 12
|
|
INDIRI4
|
|
LSHI4
|
|
ASGNI4
|
|
ADDRLP4 16
|
|
INDIRI4
|
|
ADDRGP4 level+4368
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 16
|
|
INDIRI4
|
|
ADDRGP4 level+4376
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 12
|
|
INDIRI4
|
|
DIVI4
|
|
LTI4 $1079
|
|
line 1892
|
|
;1891: // same behavior as a timeout
|
|
;1892: trap_SendServerCommand( -1, va("print \"%s\n\"", G_GetStripEdString("SVINGAME", "TEAMVOTEFAILED")) );
|
|
ADDRGP4 $853
|
|
ARGP4
|
|
ADDRGP4 $1091
|
|
ARGP4
|
|
ADDRLP4 20
|
|
ADDRGP4 G_GetStripEdString
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRGP4 $1008
|
|
ARGP4
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 24
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
CNSTI4 -1
|
|
ARGI4
|
|
ADDRLP4 24
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_SendServerCommand
|
|
CALLV
|
|
pop
|
|
line 1893
|
|
;1893: } else {
|
|
line 1895
|
|
;1894: // still waiting for a majority
|
|
;1895: return;
|
|
LABELV $1105
|
|
LABELV $1093
|
|
line 1897
|
|
;1896: }
|
|
;1897: }
|
|
LABELV $1088
|
|
line 1898
|
|
;1898: level.teamVoteTime[cs_offset] = 0;
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRGP4 level+4352
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1899
|
|
;1899: trap_SetConfigstring( CS_TEAMVOTE_TIME + cs_offset, "" );
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 12
|
|
ADDI4
|
|
ARGI4
|
|
ADDRGP4 $80
|
|
ARGP4
|
|
ADDRGP4 trap_SetConfigstring
|
|
CALLV
|
|
pop
|
|
line 1901
|
|
;1900:
|
|
;1901:}
|
|
LABELV $1079
|
|
endproc CheckTeamVote 28 12
|
|
data
|
|
align 4
|
|
LABELV $1110
|
|
byte 4 -1
|
|
export CheckCvars
|
|
code
|
|
proc CheckCvars 4 8
|
|
line 1909
|
|
;1902:
|
|
;1903:
|
|
;1904:/*
|
|
;1905:==================
|
|
;1906:CheckCvars
|
|
;1907:==================
|
|
;1908:*/
|
|
;1909:void CheckCvars( void ) {
|
|
line 1912
|
|
;1910: static int lastMod = -1;
|
|
;1911:
|
|
;1912: if ( g_password.modificationCount != lastMod ) {
|
|
ADDRGP4 g_password+4
|
|
INDIRI4
|
|
ADDRGP4 $1110
|
|
INDIRI4
|
|
EQI4 $1111
|
|
line 1913
|
|
;1913: lastMod = g_password.modificationCount;
|
|
ADDRGP4 $1110
|
|
ADDRGP4 g_password+4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1914
|
|
;1914: if ( *g_password.string && Q_stricmp( g_password.string, "none" ) ) {
|
|
ADDRGP4 g_password+16
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 0
|
|
EQI4 $1115
|
|
ADDRGP4 g_password+16
|
|
ARGP4
|
|
ADDRGP4 $1119
|
|
ARGP4
|
|
ADDRLP4 0
|
|
ADDRGP4 Q_stricmp
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $1115
|
|
line 1915
|
|
;1915: trap_Cvar_Set( "g_needpass", "1" );
|
|
ADDRGP4 $133
|
|
ARGP4
|
|
ADDRGP4 $101
|
|
ARGP4
|
|
ADDRGP4 trap_Cvar_Set
|
|
CALLV
|
|
pop
|
|
line 1916
|
|
;1916: } else {
|
|
ADDRGP4 $1116
|
|
JUMPV
|
|
LABELV $1115
|
|
line 1917
|
|
;1917: trap_Cvar_Set( "g_needpass", "0" );
|
|
ADDRGP4 $133
|
|
ARGP4
|
|
ADDRGP4 $86
|
|
ARGP4
|
|
ADDRGP4 trap_Cvar_Set
|
|
CALLV
|
|
pop
|
|
line 1918
|
|
;1918: }
|
|
LABELV $1116
|
|
line 1919
|
|
;1919: }
|
|
LABELV $1111
|
|
line 1920
|
|
;1920:}
|
|
LABELV $1109
|
|
endproc CheckCvars 4 8
|
|
export G_RunThink
|
|
proc G_RunThink 8 4
|
|
line 1929
|
|
;1921:
|
|
;1922:/*
|
|
;1923:=============
|
|
;1924:G_RunThink
|
|
;1925:
|
|
;1926:Runs thinking code for this frame if necessary
|
|
;1927:=============
|
|
;1928:*/
|
|
;1929:void G_RunThink (gentity_t *ent) {
|
|
line 1932
|
|
;1930: float thinktime;
|
|
;1931:
|
|
;1932: thinktime = ent->nextthink;
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 632
|
|
ADDP4
|
|
INDIRI4
|
|
CVIF4 4
|
|
ASGNF4
|
|
line 1933
|
|
;1933: if (thinktime <= 0) {
|
|
ADDRLP4 0
|
|
INDIRF4
|
|
CNSTF4 0
|
|
GTF4 $1121
|
|
line 1934
|
|
;1934: return;
|
|
ADDRGP4 $1120
|
|
JUMPV
|
|
LABELV $1121
|
|
line 1936
|
|
;1935: }
|
|
;1936: if (thinktime > level.time) {
|
|
ADDRLP4 0
|
|
INDIRF4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CVIF4 4
|
|
LEF4 $1123
|
|
line 1937
|
|
;1937: return;
|
|
ADDRGP4 $1120
|
|
JUMPV
|
|
LABELV $1123
|
|
line 1940
|
|
;1938: }
|
|
;1939:
|
|
;1940: ent->nextthink = 0;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 632
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1941
|
|
;1941: if (!ent->think) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 636
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
NEU4 $1126
|
|
line 1942
|
|
;1942: G_Error ( "NULL ent->think");
|
|
ADDRGP4 $1128
|
|
ARGP4
|
|
ADDRGP4 G_Error
|
|
CALLV
|
|
pop
|
|
line 1943
|
|
;1943: }
|
|
LABELV $1126
|
|
line 1944
|
|
;1944: ent->think (ent);
|
|
ADDRLP4 4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 636
|
|
ADDP4
|
|
INDIRP4
|
|
CALLV
|
|
pop
|
|
line 1945
|
|
;1945:}
|
|
LABELV $1120
|
|
endproc G_RunThink 8 4
|
|
data
|
|
export g_LastFrameTime
|
|
align 4
|
|
LABELV g_LastFrameTime
|
|
byte 4 0
|
|
export g_TimeSinceLastFrame
|
|
align 4
|
|
LABELV g_TimeSinceLastFrame
|
|
byte 4 0
|
|
export G_RunFrame
|
|
code
|
|
proc G_RunFrame 52 12
|
|
line 1958
|
|
;1946:
|
|
;1947:int g_LastFrameTime = 0;
|
|
;1948:int g_TimeSinceLastFrame = 0;
|
|
;1949:
|
|
;1950:/*
|
|
;1951:================
|
|
;1952:G_RunFrame
|
|
;1953:
|
|
;1954:Advances the non-player objects in the world
|
|
;1955:================
|
|
;1956:*/
|
|
;1957:
|
|
;1958:void G_RunFrame( int levelTime ) {
|
|
line 1965
|
|
;1959: int i;
|
|
;1960: gentity_t *ent;
|
|
;1961: int msec;
|
|
;1962:int start, end;
|
|
;1963:
|
|
;1964: // if we are waiting for the level to restart, do nothing
|
|
;1965: if ( level.restarted ) {
|
|
ADDRGP4 level+68
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $1130
|
|
line 1966
|
|
;1966: return;
|
|
ADDRGP4 $1129
|
|
JUMPV
|
|
LABELV $1130
|
|
line 1969
|
|
;1967: }
|
|
;1968:
|
|
;1969: level.framenum++;
|
|
ADDRLP4 20
|
|
ADDRGP4 level+28
|
|
ASGNP4
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
line 1970
|
|
;1970: level.previousTime = level.time;
|
|
ADDRGP4 level+36
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1971
|
|
;1971: level.time = levelTime;
|
|
ADDRGP4 level+32
|
|
ADDRFP4 0
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1972
|
|
;1972: msec = level.time - level.previousTime;
|
|
ADDRLP4 16
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ADDRGP4 level+36
|
|
INDIRI4
|
|
SUBI4
|
|
ASGNI4
|
|
line 1974
|
|
;1973:
|
|
;1974: g_TimeSinceLastFrame = (level.time - g_LastFrameTime);
|
|
ADDRGP4 g_TimeSinceLastFrame
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ADDRGP4 g_LastFrameTime
|
|
INDIRI4
|
|
SUBI4
|
|
ASGNI4
|
|
line 1977
|
|
;1975:
|
|
;1976: // get any cvar changes
|
|
;1977: G_UpdateCvars();
|
|
ADDRGP4 G_UpdateCvars
|
|
CALLV
|
|
pop
|
|
line 1982
|
|
;1978:
|
|
;1979: //
|
|
;1980: // go through all allocated objects
|
|
;1981: //
|
|
;1982: start = trap_Milliseconds();
|
|
ADDRLP4 24
|
|
ADDRGP4 trap_Milliseconds
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 8
|
|
ADDRLP4 24
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1983
|
|
;1983: ent = &g_entities[0];
|
|
ADDRLP4 0
|
|
ADDRGP4 g_entities
|
|
ASGNP4
|
|
line 1984
|
|
;1984: for (i=0 ; i<level.num_entities ; i++, ent++) {
|
|
ADDRLP4 4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 $1143
|
|
JUMPV
|
|
LABELV $1140
|
|
line 1985
|
|
;1985: if ( !ent->inuse ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 412
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $1145
|
|
line 1986
|
|
;1986: continue;
|
|
ADDRGP4 $1141
|
|
JUMPV
|
|
LABELV $1145
|
|
line 1990
|
|
;1987: }
|
|
;1988:
|
|
;1989: // clear events that are too old
|
|
;1990: if ( level.time - ent->eventTime > EVENT_VALID_MSEC ) {
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 488
|
|
ADDP4
|
|
INDIRI4
|
|
SUBI4
|
|
CNSTI4 300
|
|
LEI4 $1147
|
|
line 1991
|
|
;1991: if ( ent->s.event ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 252
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $1150
|
|
line 1992
|
|
;1992: ent->s.event = 0; // &= EV_EVENT_BITS;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 252
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1993
|
|
;1993: if ( ent->client ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $1152
|
|
line 1994
|
|
;1994: ent->client->ps.externalEvent = 0;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 132
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1998
|
|
;1995: // predicted events should never be set to zero
|
|
;1996: //ent->client->ps.events[0] = 0;
|
|
;1997: //ent->client->ps.events[1] = 0;
|
|
;1998: }
|
|
LABELV $1152
|
|
line 1999
|
|
;1999: }
|
|
LABELV $1150
|
|
line 2000
|
|
;2000: if ( ent->freeAfterEvent ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 492
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $1154
|
|
line 2002
|
|
;2001: // tempEntities or dropped items completely go away after their event
|
|
;2002: if (ent->s.eFlags & EF_SOUNDTRACKER)
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 8
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 8388608
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $1156
|
|
line 2003
|
|
;2003: { //don't trigger the event again..
|
|
line 2004
|
|
;2004: ent->s.event = 0;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 252
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 2005
|
|
;2005: ent->s.eventParm = 0;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 256
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 2006
|
|
;2006: ent->s.eType = 0;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 4
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 2007
|
|
;2007: ent->eventTime = 0;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 488
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 2008
|
|
;2008: }
|
|
ADDRGP4 $1155
|
|
JUMPV
|
|
LABELV $1156
|
|
line 2010
|
|
;2009: else
|
|
;2010: {
|
|
line 2011
|
|
;2011: G_FreeEntity( ent );
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 G_FreeEntity
|
|
CALLV
|
|
pop
|
|
line 2012
|
|
;2012: continue;
|
|
ADDRGP4 $1141
|
|
JUMPV
|
|
line 2014
|
|
;2013: }
|
|
;2014: } else if ( ent->unlinkAfterEvent ) {
|
|
LABELV $1154
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 496
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $1158
|
|
line 2016
|
|
;2015: // items that will respawn will hide themselves after their pickup event
|
|
;2016: ent->unlinkAfterEvent = qfalse;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 496
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 2017
|
|
;2017: trap_UnlinkEntity( ent );
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_UnlinkEntity
|
|
CALLV
|
|
pop
|
|
line 2018
|
|
;2018: }
|
|
LABELV $1158
|
|
LABELV $1155
|
|
line 2019
|
|
;2019: }
|
|
LABELV $1147
|
|
line 2022
|
|
;2020:
|
|
;2021: // temporary entities don't think
|
|
;2022: if ( ent->freeAfterEvent ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 492
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $1160
|
|
line 2023
|
|
;2023: continue;
|
|
ADDRGP4 $1141
|
|
JUMPV
|
|
LABELV $1160
|
|
line 2026
|
|
;2024: }
|
|
;2025:
|
|
;2026: if ( !ent->r.linked && ent->neverFree ) {
|
|
ADDRLP4 32
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 296
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 32
|
|
INDIRI4
|
|
NEI4 $1162
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 468
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 32
|
|
INDIRI4
|
|
EQI4 $1162
|
|
line 2027
|
|
;2027: continue;
|
|
ADDRGP4 $1141
|
|
JUMPV
|
|
LABELV $1162
|
|
line 2030
|
|
;2028: }
|
|
;2029:
|
|
;2030: if ( ent->s.eType == ET_MISSILE ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 4
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 3
|
|
NEI4 $1164
|
|
line 2031
|
|
;2031: G_RunMissile( ent );
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 G_RunMissile
|
|
CALLV
|
|
pop
|
|
line 2032
|
|
;2032: continue;
|
|
ADDRGP4 $1141
|
|
JUMPV
|
|
LABELV $1164
|
|
line 2035
|
|
;2033: }
|
|
;2034:
|
|
;2035: if ( ent->s.eType == ET_ITEM || ent->physicsObject ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 4
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
EQI4 $1168
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 500
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $1166
|
|
LABELV $1168
|
|
line 2036
|
|
;2036: G_RunItem( ent );
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 G_RunItem
|
|
CALLV
|
|
pop
|
|
line 2037
|
|
;2037: continue;
|
|
ADDRGP4 $1141
|
|
JUMPV
|
|
LABELV $1166
|
|
line 2040
|
|
;2038: }
|
|
;2039:
|
|
;2040: if ( ent->s.eType == ET_MOVER ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 4
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 6
|
|
NEI4 $1169
|
|
line 2041
|
|
;2041: G_RunMover( ent );
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 G_RunMover
|
|
CALLV
|
|
pop
|
|
line 2042
|
|
;2042: continue;
|
|
ADDRGP4 $1141
|
|
JUMPV
|
|
LABELV $1169
|
|
line 2045
|
|
;2043: }
|
|
;2044:
|
|
;2045: if ( i < MAX_CLIENTS )
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 32
|
|
GEI4 $1171
|
|
line 2046
|
|
;2046: {
|
|
line 2047
|
|
;2047: G_CheckClientTimeouts ( ent );
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 G_CheckClientTimeouts
|
|
CALLV
|
|
pop
|
|
line 2049
|
|
;2048:
|
|
;2049: if((!level.intermissiontime)&&!(ent->client->ps.pm_flags&PMF_FOLLOW))
|
|
ADDRLP4 40
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 level+9008
|
|
INDIRI4
|
|
ADDRLP4 40
|
|
INDIRI4
|
|
NEI4 $1173
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 12
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 4096
|
|
BANDI4
|
|
ADDRLP4 40
|
|
INDIRI4
|
|
NEI4 $1173
|
|
line 2050
|
|
;2050: {
|
|
line 2051
|
|
;2051: WP_ForcePowersUpdate(ent, &ent->client->pers.cmd );
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1372
|
|
ADDP4
|
|
ARGP4
|
|
ADDRGP4 WP_ForcePowersUpdate
|
|
CALLV
|
|
pop
|
|
line 2052
|
|
;2052: WP_SaberPositionUpdate(ent, &ent->client->pers.cmd);
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1372
|
|
ADDP4
|
|
ARGP4
|
|
ADDRGP4 WP_SaberPositionUpdate
|
|
CALLV
|
|
pop
|
|
line 2053
|
|
;2053: }
|
|
LABELV $1173
|
|
line 2054
|
|
;2054: G_RunClient( ent );
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 G_RunClient
|
|
CALLV
|
|
pop
|
|
line 2055
|
|
;2055: continue;
|
|
ADDRGP4 $1141
|
|
JUMPV
|
|
LABELV $1171
|
|
line 2058
|
|
;2056: }
|
|
;2057:
|
|
;2058: G_RunThink( ent );
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 G_RunThink
|
|
CALLV
|
|
pop
|
|
line 2059
|
|
;2059: }
|
|
LABELV $1141
|
|
line 1984
|
|
ADDRLP4 4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 828
|
|
ADDP4
|
|
ASGNP4
|
|
LABELV $1143
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ADDRGP4 level+12
|
|
INDIRI4
|
|
LTI4 $1140
|
|
line 2060
|
|
;2060:end = trap_Milliseconds();
|
|
ADDRLP4 28
|
|
ADDRGP4 trap_Milliseconds
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 12
|
|
ADDRLP4 28
|
|
INDIRI4
|
|
ASGNI4
|
|
line 2062
|
|
;2061:
|
|
;2062: trap_ROFF_UpdateEntities();
|
|
ADDRGP4 trap_ROFF_UpdateEntities
|
|
CALLV
|
|
pop
|
|
line 2064
|
|
;2063:
|
|
;2064:start = trap_Milliseconds();
|
|
ADDRLP4 32
|
|
ADDRGP4 trap_Milliseconds
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 8
|
|
ADDRLP4 32
|
|
INDIRI4
|
|
ASGNI4
|
|
line 2066
|
|
;2065: // perform final fixups on the players
|
|
;2066: ent = &g_entities[0];
|
|
ADDRLP4 0
|
|
ADDRGP4 g_entities
|
|
ASGNP4
|
|
line 2067
|
|
;2067: for (i=0 ; i < level.maxclients ; i++, ent++ ) {
|
|
ADDRLP4 4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 $1179
|
|
JUMPV
|
|
LABELV $1176
|
|
line 2068
|
|
;2068: if ( ent->inuse ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 412
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $1181
|
|
line 2069
|
|
;2069: ClientEndFrame( ent );
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 ClientEndFrame
|
|
CALLV
|
|
pop
|
|
line 2070
|
|
;2070: }
|
|
LABELV $1181
|
|
line 2071
|
|
;2071: }
|
|
LABELV $1177
|
|
line 2067
|
|
ADDRLP4 4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 828
|
|
ADDP4
|
|
ASGNP4
|
|
LABELV $1179
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ADDRGP4 level+24
|
|
INDIRI4
|
|
LTI4 $1176
|
|
line 2072
|
|
;2072:end = trap_Milliseconds();
|
|
ADDRLP4 36
|
|
ADDRGP4 trap_Milliseconds
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 12
|
|
ADDRLP4 36
|
|
INDIRI4
|
|
ASGNI4
|
|
line 2075
|
|
;2073:
|
|
;2074: // see if it is time to do a tournement restart
|
|
;2075: CheckTournament();
|
|
ADDRGP4 CheckTournament
|
|
CALLV
|
|
pop
|
|
line 2078
|
|
;2076:
|
|
;2077: // see if it is time to end the level
|
|
;2078: CheckExitRules();
|
|
ADDRGP4 CheckExitRules
|
|
CALLV
|
|
pop
|
|
line 2081
|
|
;2079:
|
|
;2080: // update to team status?
|
|
;2081: CheckTeamStatus();
|
|
ADDRGP4 CheckTeamStatus
|
|
CALLV
|
|
pop
|
|
line 2084
|
|
;2082:
|
|
;2083: // cancel vote if timed out
|
|
;2084: CheckVote();
|
|
ADDRGP4 CheckVote
|
|
CALLV
|
|
pop
|
|
line 2087
|
|
;2085:
|
|
;2086: // check team votes
|
|
;2087: CheckTeamVote( TEAM_RED );
|
|
CNSTI4 1
|
|
ARGI4
|
|
ADDRGP4 CheckTeamVote
|
|
CALLV
|
|
pop
|
|
line 2088
|
|
;2088: CheckTeamVote( TEAM_BLUE );
|
|
CNSTI4 2
|
|
ARGI4
|
|
ADDRGP4 CheckTeamVote
|
|
CALLV
|
|
pop
|
|
line 2091
|
|
;2089:
|
|
;2090: // for tracking changes
|
|
;2091: CheckCvars();
|
|
ADDRGP4 CheckCvars
|
|
CALLV
|
|
pop
|
|
line 2093
|
|
;2092:
|
|
;2093: if (g_listEntity.integer) {
|
|
ADDRGP4 g_listEntity+12
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $1183
|
|
line 2094
|
|
;2094: for (i = 0; i < MAX_GENTITIES; i++) {
|
|
ADDRLP4 4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
LABELV $1186
|
|
line 2095
|
|
;2095: G_Printf("%4i: %s\n", i, g_entities[i].classname);
|
|
ADDRGP4 $1190
|
|
ARGP4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ARGI4
|
|
CNSTI4 828
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 g_entities+416
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 G_Printf
|
|
CALLV
|
|
pop
|
|
line 2096
|
|
;2096: }
|
|
LABELV $1187
|
|
line 2094
|
|
ADDRLP4 4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 1024
|
|
LTI4 $1186
|
|
line 2097
|
|
;2097: trap_Cvar_Set("g_listEntity", "0");
|
|
ADDRGP4 $159
|
|
ARGP4
|
|
ADDRGP4 $86
|
|
ARGP4
|
|
ADDRGP4 trap_Cvar_Set
|
|
CALLV
|
|
pop
|
|
line 2098
|
|
;2098: }
|
|
LABELV $1183
|
|
line 2101
|
|
;2099:
|
|
;2100: //At the end of the frame, send out the ghoul2 kill queue, if there is one
|
|
;2101: G_SendG2KillQueue();
|
|
ADDRGP4 G_SendG2KillQueue
|
|
CALLV
|
|
pop
|
|
line 2103
|
|
;2102:
|
|
;2103: g_LastFrameTime = level.time;
|
|
ADDRGP4 g_LastFrameTime
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ASGNI4
|
|
line 2104
|
|
;2104:}
|
|
LABELV $1129
|
|
endproc G_RunFrame 52 12
|
|
data
|
|
align 1
|
|
LABELV $1194
|
|
char 1 0
|
|
skip 1023
|
|
export G_GetStripEdString
|
|
code
|
|
proc G_GetStripEdString 0 16
|
|
line 2107
|
|
;2105:
|
|
;2106:const char *G_GetStripEdString(char *refSection, char *refName)
|
|
;2107:{
|
|
line 2120
|
|
;2108: /*
|
|
;2109: static char text[1024]={0};
|
|
;2110: trap_SP_GetStringTextString(va("%s_%s", refSection, refName), text, sizeof(text));
|
|
;2111: return text;
|
|
;2112: */
|
|
;2113:
|
|
;2114: //Well, it would've been lovely doing it the above way, but it would mean mixing
|
|
;2115: //languages for the client depending on what the server is. So we'll mark this as
|
|
;2116: //a striped reference with @@@ and send the refname to the client, and when it goes
|
|
;2117: //to print it will get scanned for the striped reference indication and dealt with
|
|
;2118: //properly.
|
|
;2119: static char text[1024]={0};
|
|
;2120: Com_sprintf(text, sizeof(text), "@@@%s", refName);
|
|
ADDRGP4 $1194
|
|
ARGP4
|
|
CNSTI4 1024
|
|
ARGI4
|
|
ADDRGP4 $1195
|
|
ARGP4
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 Com_sprintf
|
|
CALLV
|
|
pop
|
|
line 2121
|
|
;2121: return text;
|
|
ADDRGP4 $1194
|
|
RETP4
|
|
LABELV $1193
|
|
endproc G_GetStripEdString 0 16
|
|
import G_ROFF_NotetrackCallback
|
|
bss
|
|
export g_listEntity
|
|
align 4
|
|
LABELV g_listEntity
|
|
skip 272
|
|
export g_podiumDrop
|
|
align 4
|
|
LABELV g_podiumDrop
|
|
skip 272
|
|
export g_podiumDist
|
|
align 4
|
|
LABELV g_podiumDist
|
|
skip 272
|
|
export g_statLogFile
|
|
align 4
|
|
LABELV g_statLogFile
|
|
skip 272
|
|
export g_statLog
|
|
align 4
|
|
LABELV g_statLog
|
|
skip 272
|
|
export g_logSync
|
|
align 4
|
|
LABELV g_logSync
|
|
skip 272
|
|
export g_log
|
|
align 4
|
|
LABELV g_log
|
|
skip 272
|
|
export g_MaxHolocronCarry
|
|
align 4
|
|
LABELV g_MaxHolocronCarry
|
|
skip 272
|
|
export g_clients
|
|
align 4
|
|
LABELV g_clients
|
|
skip 56192
|
|
import trap_ROFF_Purge_Ent
|
|
import trap_ROFF_Play
|
|
import trap_ROFF_Cache
|
|
import trap_ROFF_UpdateEntities
|
|
import trap_ROFF_Clean
|
|
import trap_SP_GetStringTextString
|
|
import trap_SP_Register
|
|
import trap_SP_RegisterServer
|
|
import trap_SnapVector
|
|
import trap_GeneticParentsAndChildSelection
|
|
import trap_BotResetWeaponState
|
|
import trap_BotFreeWeaponState
|
|
import trap_BotAllocWeaponState
|
|
import trap_BotLoadWeaponWeights
|
|
import trap_BotGetWeaponInfo
|
|
import trap_BotChooseBestFightWeapon
|
|
import trap_BotAddAvoidSpot
|
|
import trap_BotInitMoveState
|
|
import trap_BotFreeMoveState
|
|
import trap_BotAllocMoveState
|
|
import trap_BotPredictVisiblePosition
|
|
import trap_BotMovementViewTarget
|
|
import trap_BotReachabilityArea
|
|
import trap_BotResetLastAvoidReach
|
|
import trap_BotResetAvoidReach
|
|
import trap_BotMoveInDirection
|
|
import trap_BotMoveToGoal
|
|
import trap_BotResetMoveState
|
|
import trap_BotFreeGoalState
|
|
import trap_BotAllocGoalState
|
|
import trap_BotMutateGoalFuzzyLogic
|
|
import trap_BotSaveGoalFuzzyLogic
|
|
import trap_BotInterbreedGoalFuzzyLogic
|
|
import trap_BotFreeItemWeights
|
|
import trap_BotLoadItemWeights
|
|
import trap_BotUpdateEntityItems
|
|
import trap_BotInitLevelItems
|
|
import trap_BotSetAvoidGoalTime
|
|
import trap_BotAvoidGoalTime
|
|
import trap_BotGetLevelItemGoal
|
|
import trap_BotGetMapLocationGoal
|
|
import trap_BotGetNextCampSpotGoal
|
|
import trap_BotItemGoalInVisButNotVisible
|
|
import trap_BotTouchingGoal
|
|
import trap_BotChooseNBGItem
|
|
import trap_BotChooseLTGItem
|
|
import trap_BotGetSecondGoal
|
|
import trap_BotGetTopGoal
|
|
import trap_BotGoalName
|
|
import trap_BotDumpGoalStack
|
|
import trap_BotDumpAvoidGoals
|
|
import trap_BotEmptyGoalStack
|
|
import trap_BotPopGoal
|
|
import trap_BotPushGoal
|
|
import trap_BotResetAvoidGoals
|
|
import trap_BotRemoveFromAvoidGoals
|
|
import trap_BotResetGoalState
|
|
import trap_BotSetChatName
|
|
import trap_BotSetChatGender
|
|
import trap_BotLoadChatFile
|
|
import trap_BotReplaceSynonyms
|
|
import trap_UnifyWhiteSpaces
|
|
import trap_BotMatchVariable
|
|
import trap_BotFindMatch
|
|
import trap_StringContains
|
|
import trap_BotGetChatMessage
|
|
import trap_BotEnterChat
|
|
import trap_BotChatLength
|
|
import trap_BotReplyChat
|
|
import trap_BotNumInitialChats
|
|
import trap_BotInitialChat
|
|
import trap_BotNumConsoleMessages
|
|
import trap_BotNextConsoleMessage
|
|
import trap_BotRemoveConsoleMessage
|
|
import trap_BotQueueConsoleMessage
|
|
import trap_BotFreeChatState
|
|
import trap_BotAllocChatState
|
|
import trap_Characteristic_String
|
|
import trap_Characteristic_BInteger
|
|
import trap_Characteristic_Integer
|
|
import trap_Characteristic_BFloat
|
|
import trap_Characteristic_Float
|
|
import trap_BotFreeCharacter
|
|
import trap_BotLoadCharacter
|
|
import trap_EA_ResetInput
|
|
import trap_EA_GetInput
|
|
import trap_EA_EndRegular
|
|
import trap_EA_ForcePower
|
|
import trap_EA_Alt_Attack
|
|
import trap_EA_View
|
|
import trap_EA_Move
|
|
import trap_EA_DelayedJump
|
|
import trap_EA_Jump
|
|
import trap_EA_SelectWeapon
|
|
import trap_EA_MoveRight
|
|
import trap_EA_MoveLeft
|
|
import trap_EA_MoveBack
|
|
import trap_EA_MoveForward
|
|
import trap_EA_MoveDown
|
|
import trap_EA_MoveUp
|
|
import trap_EA_Crouch
|
|
import trap_EA_Respawn
|
|
import trap_EA_Use
|
|
import trap_EA_Attack
|
|
import trap_EA_Talk
|
|
import trap_EA_Gesture
|
|
import trap_EA_Action
|
|
import trap_EA_Command
|
|
import trap_EA_SayTeam
|
|
import trap_EA_Say
|
|
import trap_AAS_PredictClientMovement
|
|
import trap_AAS_Swimming
|
|
import trap_AAS_AlternativeRouteGoals
|
|
import trap_AAS_PredictRoute
|
|
import trap_AAS_EnableRoutingArea
|
|
import trap_AAS_AreaTravelTimeToGoalArea
|
|
import trap_AAS_AreaReachability
|
|
import trap_AAS_IntForBSPEpairKey
|
|
import trap_AAS_FloatForBSPEpairKey
|
|
import trap_AAS_VectorForBSPEpairKey
|
|
import trap_AAS_ValueForBSPEpairKey
|
|
import trap_AAS_NextBSPEntity
|
|
import trap_AAS_PointContents
|
|
import trap_AAS_TraceAreas
|
|
import trap_AAS_PointReachabilityAreaIndex
|
|
import trap_AAS_PointAreaNum
|
|
import trap_AAS_Time
|
|
import trap_AAS_PresenceTypeBoundingBox
|
|
import trap_AAS_Initialized
|
|
import trap_AAS_EntityInfo
|
|
import trap_AAS_AreaInfo
|
|
import trap_AAS_BBoxAreas
|
|
import trap_BotUserCommand
|
|
import trap_BotGetServerCommand
|
|
import trap_BotGetSnapshotEntity
|
|
import trap_BotLibTest
|
|
import trap_BotLibUpdateEntity
|
|
import trap_BotLibLoadMap
|
|
import trap_BotLibStartFrame
|
|
import trap_BotLibDefine
|
|
import trap_BotLibVarGet
|
|
import trap_BotLibVarSet
|
|
import trap_BotLibShutdown
|
|
import trap_BotLibSetup
|
|
import trap_DebugPolygonDelete
|
|
import trap_DebugPolygonCreate
|
|
import trap_GetEntityToken
|
|
import trap_GetUsercmd
|
|
import trap_BotFreeClient
|
|
import trap_BotAllocateClient
|
|
import trap_EntityContact
|
|
import trap_EntitiesInBox
|
|
import trap_UnlinkEntity
|
|
import trap_LinkEntity
|
|
import trap_AreasConnected
|
|
import trap_AdjustAreaPortalState
|
|
import trap_InPVSIgnorePortals
|
|
import trap_InPVS
|
|
import trap_PointContents
|
|
import trap_Trace
|
|
import trap_SetBrushModel
|
|
import trap_GetServerinfo
|
|
import trap_SetUserinfo
|
|
import trap_GetUserinfo
|
|
import trap_GetConfigstring
|
|
import trap_SetConfigstring
|
|
import trap_SendServerCommand
|
|
import trap_DropClient
|
|
import trap_LocateGameData
|
|
import trap_Cvar_VariableStringBuffer
|
|
import trap_Cvar_VariableValue
|
|
import trap_Cvar_VariableIntegerValue
|
|
import trap_Cvar_Set
|
|
import trap_Cvar_Update
|
|
import trap_Cvar_Register
|
|
import trap_SendConsoleCommand
|
|
import trap_FS_GetFileList
|
|
import trap_FS_FCloseFile
|
|
import trap_FS_Write
|
|
import trap_FS_Read
|
|
import trap_FS_FOpenFile
|
|
import trap_Args
|
|
import trap_Argv
|
|
import trap_Argc
|
|
import trap_Milliseconds
|
|
import trap_Error
|
|
import trap_Printf
|
|
export g_timeouttospec
|
|
align 4
|
|
LABELV g_timeouttospec
|
|
skip 272
|
|
export g_forceDodge
|
|
align 4
|
|
LABELV g_forceDodge
|
|
skip 272
|
|
export g_dismember
|
|
align 4
|
|
LABELV g_dismember
|
|
skip 272
|
|
export g_singlePlayer
|
|
align 4
|
|
LABELV g_singlePlayer
|
|
skip 272
|
|
export g_enableBreath
|
|
align 4
|
|
LABELV g_enableBreath
|
|
skip 272
|
|
export g_enableDust
|
|
align 4
|
|
LABELV g_enableDust
|
|
skip 272
|
|
export g_rankings
|
|
align 4
|
|
LABELV g_rankings
|
|
skip 272
|
|
export pmove_msec
|
|
align 4
|
|
LABELV pmove_msec
|
|
skip 272
|
|
export pmove_fixed
|
|
align 4
|
|
LABELV pmove_fixed
|
|
skip 272
|
|
export g_smoothClients
|
|
align 4
|
|
LABELV g_smoothClients
|
|
skip 272
|
|
export g_blueteam
|
|
align 4
|
|
LABELV g_blueteam
|
|
skip 272
|
|
export g_redteam
|
|
align 4
|
|
LABELV g_redteam
|
|
skip 272
|
|
export g_debugUp
|
|
align 4
|
|
LABELV g_debugUp
|
|
skip 272
|
|
export g_debugRight
|
|
align 4
|
|
LABELV g_debugRight
|
|
skip 272
|
|
export g_debugForward
|
|
align 4
|
|
LABELV g_debugForward
|
|
skip 272
|
|
export g_filterBan
|
|
align 4
|
|
LABELV g_filterBan
|
|
skip 272
|
|
export g_banIPs
|
|
align 4
|
|
LABELV g_banIPs
|
|
skip 272
|
|
export g_teamForceBalance
|
|
align 4
|
|
LABELV g_teamForceBalance
|
|
skip 272
|
|
export g_teamAutoJoin
|
|
align 4
|
|
LABELV g_teamAutoJoin
|
|
skip 272
|
|
export g_allowVote
|
|
align 4
|
|
LABELV g_allowVote
|
|
skip 272
|
|
export g_blood
|
|
align 4
|
|
LABELV g_blood
|
|
skip 272
|
|
export g_doWarmup
|
|
align 4
|
|
LABELV g_doWarmup
|
|
skip 272
|
|
export g_warmup
|
|
align 4
|
|
LABELV g_warmup
|
|
skip 272
|
|
export g_motd
|
|
align 4
|
|
LABELV g_motd
|
|
skip 272
|
|
export g_synchronousClients
|
|
align 4
|
|
LABELV g_synchronousClients
|
|
skip 272
|
|
export g_adaptRespawn
|
|
align 4
|
|
LABELV g_adaptRespawn
|
|
skip 272
|
|
export g_weaponTeamRespawn
|
|
align 4
|
|
LABELV g_weaponTeamRespawn
|
|
skip 272
|
|
export g_weaponRespawn
|
|
align 4
|
|
LABELV g_weaponRespawn
|
|
skip 272
|
|
export g_debugDamage
|
|
align 4
|
|
LABELV g_debugDamage
|
|
skip 272
|
|
export g_debugAlloc
|
|
align 4
|
|
LABELV g_debugAlloc
|
|
skip 272
|
|
export g_debugMove
|
|
align 4
|
|
LABELV g_debugMove
|
|
skip 272
|
|
export g_inactivity
|
|
align 4
|
|
LABELV g_inactivity
|
|
skip 272
|
|
export g_forcerespawn
|
|
align 4
|
|
LABELV g_forcerespawn
|
|
skip 272
|
|
export g_quadfactor
|
|
align 4
|
|
LABELV g_quadfactor
|
|
skip 272
|
|
export g_knockback
|
|
align 4
|
|
LABELV g_knockback
|
|
skip 272
|
|
export g_speed
|
|
align 4
|
|
LABELV g_speed
|
|
skip 272
|
|
export g_gravity
|
|
align 4
|
|
LABELV g_gravity
|
|
skip 272
|
|
export g_needpass
|
|
align 4
|
|
LABELV g_needpass
|
|
skip 272
|
|
export g_password
|
|
align 4
|
|
LABELV g_password
|
|
skip 272
|
|
export g_friendlySaber
|
|
align 4
|
|
LABELV g_friendlySaber
|
|
skip 272
|
|
export g_friendlyFire
|
|
align 4
|
|
LABELV g_friendlyFire
|
|
skip 272
|
|
export g_saberInterpolate
|
|
align 4
|
|
LABELV g_saberInterpolate
|
|
skip 272
|
|
export g_capturelimit
|
|
align 4
|
|
LABELV g_capturelimit
|
|
skip 272
|
|
export g_timelimit
|
|
align 4
|
|
LABELV g_timelimit
|
|
skip 272
|
|
export g_duel_fraglimit
|
|
align 4
|
|
LABELV g_duel_fraglimit
|
|
skip 272
|
|
export g_fraglimit
|
|
align 4
|
|
LABELV g_fraglimit
|
|
skip 272
|
|
export g_duelWeaponDisable
|
|
align 4
|
|
LABELV g_duelWeaponDisable
|
|
skip 272
|
|
export g_weaponDisable
|
|
align 4
|
|
LABELV g_weaponDisable
|
|
skip 272
|
|
export g_forcePowerDisable
|
|
align 4
|
|
LABELV g_forcePowerDisable
|
|
skip 272
|
|
export g_spawnInvulnerability
|
|
align 4
|
|
LABELV g_spawnInvulnerability
|
|
skip 272
|
|
export g_forceRegenTime
|
|
align 4
|
|
LABELV g_forceRegenTime
|
|
skip 272
|
|
export g_saberLocking
|
|
align 4
|
|
LABELV g_saberLocking
|
|
skip 272
|
|
export g_privateDuel
|
|
align 4
|
|
LABELV g_privateDuel
|
|
skip 272
|
|
export g_forceBasedTeams
|
|
align 4
|
|
LABELV g_forceBasedTeams
|
|
skip 272
|
|
export g_maxForceRank
|
|
align 4
|
|
LABELV g_maxForceRank
|
|
skip 272
|
|
export g_dmflags
|
|
align 4
|
|
LABELV g_dmflags
|
|
skip 272
|
|
export g_autoMapCycle
|
|
align 4
|
|
LABELV g_autoMapCycle
|
|
skip 272
|
|
export g_restarted
|
|
align 4
|
|
LABELV g_restarted
|
|
skip 272
|
|
export g_maxGameClients
|
|
align 4
|
|
LABELV g_maxGameClients
|
|
skip 272
|
|
export g_maxclients
|
|
align 4
|
|
LABELV g_maxclients
|
|
skip 272
|
|
export g_cheats
|
|
align 4
|
|
LABELV g_cheats
|
|
skip 272
|
|
export g_dedicated
|
|
align 4
|
|
LABELV g_dedicated
|
|
skip 272
|
|
export g_gametype
|
|
align 4
|
|
LABELV g_gametype
|
|
skip 272
|
|
export g_entities
|
|
align 4
|
|
LABELV g_entities
|
|
skip 847872
|
|
export level
|
|
align 4
|
|
LABELV level
|
|
skip 9096
|
|
import Pickup_Team
|
|
import CheckTeamStatus
|
|
import TeamplayInfoMessage
|
|
import Team_GetLocationMsg
|
|
import Team_GetLocation
|
|
import SelectSagaSpawnPoint
|
|
import SelectCTFSpawnPoint
|
|
import Team_FreeEntity
|
|
import Team_ReturnFlag
|
|
import Team_InitGame
|
|
import Team_CheckHurtCarrier
|
|
import Team_FragBonuses
|
|
import Team_DroppedFlagThink
|
|
import AddTeamScore
|
|
import TeamColorString
|
|
import OtherTeamName
|
|
import TeamName
|
|
import OtherTeam
|
|
import BotAIStartFrame
|
|
import BotAIShutdownClient
|
|
import BotAISetupClient
|
|
import BotAILoadMap
|
|
import BotAIShutdown
|
|
import BotAISetup
|
|
import B_CleanupAlloc
|
|
import B_InitAlloc
|
|
import InFieldOfVision
|
|
import BotOrder
|
|
import OrgVisible
|
|
import InitSagaMode
|
|
import G_ClearClientLog
|
|
import G_LogExit
|
|
import G_LogWeaponOutput
|
|
import G_LogWeaponInit
|
|
import G_LogWeaponItem
|
|
import G_LogWeaponPowerup
|
|
import G_LogWeaponFrag
|
|
import G_LogWeaponDeath
|
|
import G_LogWeaponKill
|
|
import G_LogWeaponDamage
|
|
import G_LogWeaponFire
|
|
import G_LogWeaponPickup
|
|
import Jedi_DodgeEvasion
|
|
import ForceTelepathy
|
|
import ForceThrow
|
|
import ForceSeeing
|
|
import ForceTeamForceReplenish
|
|
import ForceTeamHeal
|
|
import ForceAbsorb
|
|
import ForceProtect
|
|
import ForceGrip
|
|
import ForceRage
|
|
import ForceSpeed
|
|
import ForceHeal
|
|
import ForcePowerUsableOn
|
|
import WP_ForcePowersUpdate
|
|
import WP_SpawnInitForcePowers
|
|
import WP_InitForcePowers
|
|
import WP_SaberInitBladeData
|
|
import WP_SaberCanBlock
|
|
import WP_SaberPositionUpdate
|
|
import WP_ForcePowerStop
|
|
import HasSetSaberOnly
|
|
import G_PreDefSound
|
|
import G_RefreshNextMap
|
|
import G_DoesMapSupportGametype
|
|
import BotInterbreedEndMatch
|
|
import Svcmd_BotList_f
|
|
import Svcmd_AddBot_f
|
|
import G_BotConnect
|
|
import G_RemoveQueuedBotBegin
|
|
import G_CheckBotSpawn
|
|
import G_GetBotInfoByName
|
|
import G_GetBotInfoByNumber
|
|
import G_InitBots
|
|
import UpdateTournamentInfo
|
|
import G_WriteSessionData
|
|
import G_InitWorldSession
|
|
import G_InitSessionData
|
|
import G_ReadSessionData
|
|
import Svcmd_GameMem_f
|
|
import G_InitMemory
|
|
import G_Alloc
|
|
import Team_CheckDroppedItem
|
|
import OnSameTeam
|
|
import G_RunClient
|
|
import ClientEndFrame
|
|
import ClientThink
|
|
import G_CheckClientTimeouts
|
|
import ClientCommand
|
|
import ClientBegin
|
|
import ClientDisconnect
|
|
import ClientUserinfoChanged
|
|
import ClientConnect
|
|
export g_ff_objectives
|
|
align 4
|
|
LABELV g_ff_objectives
|
|
skip 272
|
|
import DeathmatchScoreboardMessage
|
|
import G_SetStats
|
|
import BlowDetpacks
|
|
import FireWeapon
|
|
import G_FilterPacket
|
|
import G_ProcessIPBans
|
|
import ConsoleCommand
|
|
import gJMSaberEnt
|
|
import SpotWouldTelefrag
|
|
import AddScore
|
|
import player_die
|
|
import ClientSpawn
|
|
import InitBodyQue
|
|
import respawn
|
|
import CopyToBodyQue
|
|
import SelectSpawnPoint
|
|
import SetClientViewAngle
|
|
import PickTeam
|
|
import TeamLeader
|
|
import TeamCount
|
|
import CheckGauntletAttack
|
|
import SnapVectorTowards
|
|
import CalcMuzzlePoint
|
|
import LogAccuracyHit
|
|
import WP_FireGenericBlasterMissile
|
|
import WP_FireTurretMissile
|
|
import G_PlayerBecomeATST
|
|
import ATST_ManageDamageBoxes
|
|
import TeleportPlayer
|
|
import trigger_teleporter_touch
|
|
import Touch_DoorTrigger
|
|
import G_RunMover
|
|
import WP_FireBlasterMissile
|
|
import G_ExplodeMissile
|
|
import G_BounceProjectile
|
|
import CreateMissile
|
|
import G_RunMissile
|
|
import G_ReflectMissile
|
|
import ExplodeDeath
|
|
import TossClientCubes
|
|
import TossClientItems
|
|
import TossClientWeapon
|
|
import body_die
|
|
import G_RadiusDamage
|
|
import G_Damage
|
|
import CanDamage
|
|
import trap_G2API_SetBoneAnim
|
|
import trap_G2API_GetGLAName
|
|
import trap_G2API_SetBoneAngles
|
|
import trap_G2API_CleanGhoul2Models
|
|
import trap_G2API_RemoveGhoul2Model
|
|
import trap_G2API_HasGhoul2ModelOnIndex
|
|
import trap_G2API_DuplicateGhoul2Instance
|
|
import trap_G2API_CopySpecificGhoul2Model
|
|
import trap_G2API_CopyGhoul2Instance
|
|
import trap_G2API_SetBoltInfo
|
|
import trap_G2API_AddBolt
|
|
import trap_G2API_InitGhoul2Model
|
|
import trap_G2API_GetBoltMatrix_NoReconstruct
|
|
import trap_G2API_GetBoltMatrix
|
|
import trap_G2_HaveWeGhoul2Models
|
|
import trap_G2_SetGhoul2ModelIndexes
|
|
import trap_G2_ListModelBones
|
|
import trap_G2_ListModelSurfaces
|
|
import G_SkinIndex
|
|
import BuildShaderStateConfig
|
|
import AddRemap
|
|
import G_SetOrigin
|
|
import G_AddEvent
|
|
import G_AddPredictableEvent
|
|
import vtos
|
|
import tv
|
|
import G_RunObject
|
|
import G_TouchSolids
|
|
import G_TouchTriggers
|
|
import G_EntitiesFree
|
|
import G_FreeEntity
|
|
import G_KillG2Queue
|
|
import G_SendG2KillQueue
|
|
import TryUse
|
|
import G_EntitySound
|
|
import G_SoundAtLoc
|
|
import G_Sound
|
|
import G_MuteSound
|
|
import G_ScreenShake
|
|
import G_PlayEffect
|
|
import G_TempEntity
|
|
import G_Spawn
|
|
import G_InitGentity
|
|
import G_SetAngles
|
|
import G_SetMovedir
|
|
import G_UseTargets
|
|
import G_PickTarget
|
|
import G_RadiusList
|
|
import G_Find
|
|
import G_KillBox
|
|
import G_TeamCommand
|
|
import G_EffectIndex
|
|
import G_SoundIndex
|
|
import G_ModelIndex
|
|
import SaveRegisteredItems
|
|
import RegisterItem
|
|
import ClearRegisteredItems
|
|
import Touch_Item
|
|
import Add_Ammo
|
|
import ArmorIndex
|
|
import Think_Weapon
|
|
import FinishSpawningItem
|
|
import G_SpawnItem
|
|
import SetRespawn
|
|
import LaunchItem
|
|
import Drop_Item
|
|
import PrecacheItem
|
|
import UseHoldableItem
|
|
import RespawnItem
|
|
import G_RunItem
|
|
import G_CheckTeamItems
|
|
import ItemUse_MedPack
|
|
import ItemUse_Seeker
|
|
import ItemUse_Sentry
|
|
import ItemUse_Shield
|
|
import ItemUse_Binoculars
|
|
import G_GetDuelWinner
|
|
import Cmd_EngageDuel_f
|
|
import Cmd_ToggleSaber_f
|
|
import G_ItemUsable
|
|
import Cmd_SaberAttackCycle_f
|
|
import Cmd_FollowCycle_f
|
|
import SetTeam
|
|
import BroadcastTeamChange
|
|
import StopFollowing
|
|
import Cmd_Score_f
|
|
import G_NewString
|
|
import G_SpawnEntitiesFromString
|
|
import G_SpawnVector
|
|
import G_SpawnInt
|
|
import G_SpawnFloat
|
|
import G_SpawnString
|
|
import g2SaberInstance
|
|
import precachedKyle
|
|
import forcePowerDarkLight
|
|
import WeaponAttackAnim
|
|
import WeaponReadyAnim
|
|
import BG_OutOfMemory
|
|
import BG_StringAlloc
|
|
import BG_TempFree
|
|
import BG_TempAlloc
|
|
import BG_AllocUnaligned
|
|
import BG_Alloc
|
|
import BG_CanUseFPNow
|
|
import BG_HasYsalamiri
|
|
import BG_GetItemIndexByTag
|
|
import BG_ParseAnimationFile
|
|
import BG_PlayerTouchesItem
|
|
import BG_G2PlayerAngles
|
|
import BG_PlayerStateToEntityStateExtraPolate
|
|
import BG_PlayerStateToEntityState
|
|
import BG_TouchJumpPad
|
|
import BG_AddPredictableEventToPlayerstate
|
|
import BG_EvaluateTrajectoryDelta
|
|
import BG_EvaluateTrajectory
|
|
import BG_ForcePowerDrain
|
|
import BG_SaberStartTransAnim
|
|
import BG_InDeathAnim
|
|
import BG_InRoll
|
|
import BG_SaberInSpecialAttack
|
|
import BG_SpinningSaberAnim
|
|
import BG_FlippingAnim
|
|
import BG_SaberInIdle
|
|
import BG_SaberInSpecial
|
|
import BG_SaberInAttack
|
|
import BG_DirectFlippingAnim
|
|
import BG_InSaberStandAnim
|
|
import BG_InSpecialJump
|
|
import BG_LegalizedForcePowers
|
|
import saberMoveData
|
|
import BG_CanItemBeGrabbed
|
|
import BG_FindItemForHoldable
|
|
import BG_FindItemForPowerup
|
|
import BG_FindItemForWeapon
|
|
import BG_FindItem
|
|
import vectoyaw
|
|
import bg_numItems
|
|
import bg_itemlist
|
|
import Pmove
|
|
import PM_UpdateViewAngles
|
|
import pm
|
|
import bgForcePowerCost
|
|
import forceMasteryPoints
|
|
import forceMasteryLevels
|
|
import bgGlobalAnimations
|
|
import BGPAFtextLoaded
|
|
import forcePowerSorted
|
|
import WP_MuzzlePoint
|
|
import ammoData
|
|
import weaponData
|
|
import GetStringForID
|
|
import GetIDForString
|
|
import Q_irand
|
|
import irand
|
|
import flrand
|
|
import Rand_Init
|
|
import Info_NextPair
|
|
import Info_Validate
|
|
import Info_SetValueForKey_Big
|
|
import Info_SetValueForKey
|
|
import Info_RemoveKey_big
|
|
import Info_RemoveKey
|
|
import Info_ValueForKey
|
|
import va
|
|
import Q_CleanStr
|
|
import Q_PrintStrlen
|
|
import Q_strcat
|
|
import Q_strncpyz
|
|
import Q_strrchr
|
|
import Q_strupr
|
|
import Q_strlwr
|
|
import Q_stricmpn
|
|
import Q_strncmp
|
|
import Q_stricmp
|
|
import Q_isalpha
|
|
import Q_isupper
|
|
import Q_islower
|
|
import Q_isprint
|
|
import Com_sprintf
|
|
import Parse3DMatrix
|
|
import Parse2DMatrix
|
|
import Parse1DMatrix
|
|
import SkipRestOfLine
|
|
import SkipBracedSection
|
|
import COM_MatchToken
|
|
import COM_ParseWarning
|
|
import COM_ParseError
|
|
import COM_Compress
|
|
import COM_ParseExt
|
|
import COM_Parse
|
|
import SkipWhitespace
|
|
import COM_GetCurrentParseLine
|
|
import COM_BeginParseSession
|
|
import COM_DefaultExtension
|
|
import COM_StripExtension
|
|
import COM_SkipPath
|
|
import Com_Clamp
|
|
import PerpendicularVector
|
|
import AngleVectors
|
|
import MatrixMultiply
|
|
import MakeNormalVectors
|
|
import RotateAroundDirection
|
|
import RotatePointAroundVector
|
|
import ProjectPointOnPlane
|
|
import PlaneFromPoints
|
|
import AngleDelta
|
|
import AngleNormalize180
|
|
import AngleNormalize360
|
|
import AnglesSubtract
|
|
import AngleSubtract
|
|
import LerpAngle
|
|
import AngleMod
|
|
import BoxOnPlaneSide
|
|
import SetPlaneSignbits
|
|
import AxisCopy
|
|
import AxisClear
|
|
import AnglesToAxis
|
|
import vectoangles
|
|
import Q_crandom
|
|
import Q_random
|
|
import Q_rand
|
|
import Q_acos
|
|
import Q_log2
|
|
import VectorRotate
|
|
import Vector4Scale
|
|
import VectorNormalize2
|
|
import VectorNormalize
|
|
import CrossProduct
|
|
import VectorInverse
|
|
import VectorNormalizeFast
|
|
import DistanceSquared
|
|
import Distance
|
|
import VectorLengthSquared
|
|
import VectorLength
|
|
import VectorCompare
|
|
import AddPointToBounds
|
|
import ClearBounds
|
|
import RadiusFromBounds
|
|
import NormalizeColor
|
|
import ColorBytes4
|
|
import ColorBytes3
|
|
import _VectorMA
|
|
import _VectorScale
|
|
import _VectorCopy
|
|
import _VectorAdd
|
|
import _VectorSubtract
|
|
import _DotProduct
|
|
import ByteToDir
|
|
import DirToByte
|
|
import powf
|
|
import ClampShort
|
|
import ClampChar
|
|
import Q_rsqrt
|
|
import Q_fabs
|
|
import axisDefault
|
|
import vec3_origin
|
|
import g_color_table
|
|
import colorDkBlue
|
|
import colorLtBlue
|
|
import colorDkGrey
|
|
import colorMdGrey
|
|
import colorLtGrey
|
|
import colorWhite
|
|
import colorCyan
|
|
import colorMagenta
|
|
import colorYellow
|
|
import colorBlue
|
|
import colorGreen
|
|
import colorRed
|
|
import colorBlack
|
|
import colorTable
|
|
import bytedirs
|
|
import Com_Memcpy
|
|
import Com_Memset
|
|
import Hunk_Alloc
|
|
import forceSpeedLevels
|
|
import FloatSwap
|
|
import LongSwap
|
|
import ShortSwap
|
|
import acos
|
|
import fabs
|
|
import abs
|
|
import tan
|
|
import atan2
|
|
import cos
|
|
import sin
|
|
import sqrt
|
|
import floor
|
|
import ceil
|
|
import memcpy
|
|
import memset
|
|
import memmove
|
|
import sscanf
|
|
import vsprintf
|
|
import _atoi
|
|
import atoi
|
|
import _atof
|
|
import atof
|
|
import toupper
|
|
import tolower
|
|
import strncpy
|
|
import strstr
|
|
import strchr
|
|
import strcmp
|
|
import strcpy
|
|
import strcat
|
|
import strlen
|
|
import rand
|
|
import srand
|
|
import qsort
|
|
lit
|
|
align 1
|
|
LABELV $1195
|
|
char 1 64
|
|
char 1 64
|
|
char 1 64
|
|
char 1 37
|
|
char 1 115
|
|
char 1 0
|
|
align 1
|
|
LABELV $1190
|
|
char 1 37
|
|
char 1 52
|
|
char 1 105
|
|
char 1 58
|
|
char 1 32
|
|
char 1 37
|
|
char 1 115
|
|
char 1 10
|
|
char 1 0
|
|
align 1
|
|
LABELV $1128
|
|
char 1 78
|
|
char 1 85
|
|
char 1 76
|
|
char 1 76
|
|
char 1 32
|
|
char 1 101
|
|
char 1 110
|
|
char 1 116
|
|
char 1 45
|
|
char 1 62
|
|
char 1 116
|
|
char 1 104
|
|
char 1 105
|
|
char 1 110
|
|
char 1 107
|
|
char 1 0
|
|
align 1
|
|
LABELV $1119
|
|
char 1 110
|
|
char 1 111
|
|
char 1 110
|
|
char 1 101
|
|
char 1 0
|
|
align 1
|
|
LABELV $1099
|
|
char 1 108
|
|
char 1 101
|
|
char 1 97
|
|
char 1 100
|
|
char 1 101
|
|
char 1 114
|
|
char 1 0
|
|
align 1
|
|
LABELV $1096
|
|
char 1 84
|
|
char 1 69
|
|
char 1 65
|
|
char 1 77
|
|
char 1 86
|
|
char 1 79
|
|
char 1 84
|
|
char 1 69
|
|
char 1 80
|
|
char 1 65
|
|
char 1 83
|
|
char 1 83
|
|
char 1 69
|
|
char 1 68
|
|
char 1 0
|
|
align 1
|
|
LABELV $1091
|
|
char 1 84
|
|
char 1 69
|
|
char 1 65
|
|
char 1 77
|
|
char 1 86
|
|
char 1 79
|
|
char 1 84
|
|
char 1 69
|
|
char 1 70
|
|
char 1 65
|
|
char 1 73
|
|
char 1 76
|
|
char 1 69
|
|
char 1 68
|
|
char 1 0
|
|
align 1
|
|
LABELV $1047
|
|
char 1 78
|
|
char 1 69
|
|
char 1 87
|
|
char 1 84
|
|
char 1 69
|
|
char 1 65
|
|
char 1 77
|
|
char 1 76
|
|
char 1 69
|
|
char 1 65
|
|
char 1 68
|
|
char 1 69
|
|
char 1 82
|
|
char 1 0
|
|
align 1
|
|
LABELV $1046
|
|
char 1 112
|
|
char 1 114
|
|
char 1 105
|
|
char 1 110
|
|
char 1 116
|
|
char 1 32
|
|
char 1 34
|
|
char 1 37
|
|
char 1 115
|
|
char 1 32
|
|
char 1 37
|
|
char 1 115
|
|
char 1 10
|
|
char 1 34
|
|
char 1 0
|
|
align 1
|
|
LABELV $1036
|
|
char 1 112
|
|
char 1 114
|
|
char 1 105
|
|
char 1 110
|
|
char 1 116
|
|
char 1 32
|
|
char 1 34
|
|
char 1 37
|
|
char 1 115
|
|
char 1 32
|
|
char 1 105
|
|
char 1 115
|
|
char 1 32
|
|
char 1 110
|
|
char 1 111
|
|
char 1 116
|
|
char 1 32
|
|
char 1 111
|
|
char 1 110
|
|
char 1 32
|
|
char 1 116
|
|
char 1 104
|
|
char 1 101
|
|
char 1 32
|
|
char 1 116
|
|
char 1 101
|
|
char 1 97
|
|
char 1 109
|
|
char 1 32
|
|
char 1 97
|
|
char 1 110
|
|
char 1 121
|
|
char 1 109
|
|
char 1 111
|
|
char 1 114
|
|
char 1 101
|
|
char 1 10
|
|
char 1 34
|
|
char 1 0
|
|
align 1
|
|
LABELV $1033
|
|
char 1 112
|
|
char 1 114
|
|
char 1 105
|
|
char 1 110
|
|
char 1 116
|
|
char 1 32
|
|
char 1 34
|
|
char 1 37
|
|
char 1 115
|
|
char 1 32
|
|
char 1 105
|
|
char 1 115
|
|
char 1 32
|
|
char 1 110
|
|
char 1 111
|
|
char 1 116
|
|
char 1 32
|
|
char 1 99
|
|
char 1 111
|
|
char 1 110
|
|
char 1 110
|
|
char 1 101
|
|
char 1 99
|
|
char 1 116
|
|
char 1 101
|
|
char 1 100
|
|
char 1 10
|
|
char 1 34
|
|
char 1 0
|
|
align 1
|
|
LABELV $1014
|
|
char 1 86
|
|
char 1 79
|
|
char 1 84
|
|
char 1 69
|
|
char 1 80
|
|
char 1 65
|
|
char 1 83
|
|
char 1 83
|
|
char 1 69
|
|
char 1 68
|
|
char 1 0
|
|
align 1
|
|
LABELV $1009
|
|
char 1 86
|
|
char 1 79
|
|
char 1 84
|
|
char 1 69
|
|
char 1 70
|
|
char 1 65
|
|
char 1 73
|
|
char 1 76
|
|
char 1 69
|
|
char 1 68
|
|
char 1 0
|
|
align 1
|
|
LABELV $1008
|
|
char 1 112
|
|
char 1 114
|
|
char 1 105
|
|
char 1 110
|
|
char 1 116
|
|
char 1 32
|
|
char 1 34
|
|
char 1 37
|
|
char 1 115
|
|
char 1 10
|
|
char 1 34
|
|
char 1 0
|
|
align 1
|
|
LABELV $997
|
|
char 1 109
|
|
char 1 97
|
|
char 1 112
|
|
char 1 32
|
|
char 1 37
|
|
char 1 115
|
|
char 1 10
|
|
char 1 0
|
|
align 1
|
|
LABELV $986
|
|
char 1 37
|
|
char 1 115
|
|
char 1 10
|
|
char 1 0
|
|
align 1
|
|
LABELV $955
|
|
char 1 87
|
|
char 1 97
|
|
char 1 114
|
|
char 1 109
|
|
char 1 117
|
|
char 1 112
|
|
char 1 58
|
|
char 1 10
|
|
char 1 0
|
|
align 1
|
|
LABELV $898
|
|
char 1 112
|
|
char 1 114
|
|
char 1 105
|
|
char 1 110
|
|
char 1 116
|
|
char 1 32
|
|
char 1 34
|
|
char 1 66
|
|
char 1 108
|
|
char 1 117
|
|
char 1 101
|
|
char 1 32
|
|
char 1 104
|
|
char 1 105
|
|
char 1 116
|
|
char 1 32
|
|
char 1 116
|
|
char 1 104
|
|
char 1 101
|
|
char 1 32
|
|
char 1 99
|
|
char 1 97
|
|
char 1 112
|
|
char 1 116
|
|
char 1 117
|
|
char 1 114
|
|
char 1 101
|
|
char 1 108
|
|
char 1 105
|
|
char 1 109
|
|
char 1 105
|
|
char 1 116
|
|
char 1 46
|
|
char 1 10
|
|
char 1 34
|
|
char 1 0
|
|
align 1
|
|
LABELV $892
|
|
char 1 67
|
|
char 1 97
|
|
char 1 112
|
|
char 1 116
|
|
char 1 117
|
|
char 1 114
|
|
char 1 101
|
|
char 1 108
|
|
char 1 105
|
|
char 1 109
|
|
char 1 105
|
|
char 1 116
|
|
char 1 32
|
|
char 1 104
|
|
char 1 105
|
|
char 1 116
|
|
char 1 46
|
|
char 1 0
|
|
align 1
|
|
LABELV $891
|
|
char 1 112
|
|
char 1 114
|
|
char 1 105
|
|
char 1 110
|
|
char 1 116
|
|
char 1 32
|
|
char 1 34
|
|
char 1 82
|
|
char 1 101
|
|
char 1 100
|
|
char 1 32
|
|
char 1 104
|
|
char 1 105
|
|
char 1 116
|
|
char 1 32
|
|
char 1 116
|
|
char 1 104
|
|
char 1 101
|
|
char 1 32
|
|
char 1 99
|
|
char 1 97
|
|
char 1 112
|
|
char 1 116
|
|
char 1 117
|
|
char 1 114
|
|
char 1 101
|
|
char 1 108
|
|
char 1 105
|
|
char 1 109
|
|
char 1 105
|
|
char 1 116
|
|
char 1 46
|
|
char 1 10
|
|
char 1 34
|
|
char 1 0
|
|
align 1
|
|
LABELV $881
|
|
char 1 112
|
|
char 1 114
|
|
char 1 105
|
|
char 1 110
|
|
char 1 116
|
|
char 1 32
|
|
char 1 34
|
|
char 1 37
|
|
char 1 115
|
|
char 1 94
|
|
char 1 55
|
|
char 1 32
|
|
char 1 37
|
|
char 1 115
|
|
char 1 46
|
|
char 1 10
|
|
char 1 34
|
|
char 1 0
|
|
align 1
|
|
LABELV $877
|
|
char 1 112
|
|
char 1 114
|
|
char 1 105
|
|
char 1 110
|
|
char 1 116
|
|
char 1 32
|
|
char 1 34
|
|
char 1 37
|
|
char 1 115
|
|
char 1 94
|
|
char 1 55
|
|
char 1 32
|
|
char 1 104
|
|
char 1 105
|
|
char 1 116
|
|
char 1 32
|
|
char 1 116
|
|
char 1 104
|
|
char 1 101
|
|
char 1 32
|
|
char 1 119
|
|
char 1 105
|
|
char 1 110
|
|
char 1 32
|
|
char 1 108
|
|
char 1 105
|
|
char 1 109
|
|
char 1 105
|
|
char 1 116
|
|
char 1 46
|
|
char 1 10
|
|
char 1 34
|
|
char 1 0
|
|
align 1
|
|
LABELV $876
|
|
char 1 68
|
|
char 1 117
|
|
char 1 101
|
|
char 1 108
|
|
char 1 32
|
|
char 1 108
|
|
char 1 105
|
|
char 1 109
|
|
char 1 105
|
|
char 1 116
|
|
char 1 32
|
|
char 1 104
|
|
char 1 105
|
|
char 1 116
|
|
char 1 46
|
|
char 1 0
|
|
align 1
|
|
LABELV $861
|
|
char 1 112
|
|
char 1 114
|
|
char 1 105
|
|
char 1 110
|
|
char 1 116
|
|
char 1 32
|
|
char 1 34
|
|
char 1 66
|
|
char 1 108
|
|
char 1 117
|
|
char 1 101
|
|
char 1 32
|
|
char 1 37
|
|
char 1 115
|
|
char 1 10
|
|
char 1 34
|
|
char 1 0
|
|
align 1
|
|
LABELV $855
|
|
char 1 75
|
|
char 1 105
|
|
char 1 108
|
|
char 1 108
|
|
char 1 32
|
|
char 1 108
|
|
char 1 105
|
|
char 1 109
|
|
char 1 105
|
|
char 1 116
|
|
char 1 32
|
|
char 1 104
|
|
char 1 105
|
|
char 1 116
|
|
char 1 46
|
|
char 1 0
|
|
align 1
|
|
LABELV $854
|
|
char 1 72
|
|
char 1 73
|
|
char 1 84
|
|
char 1 95
|
|
char 1 84
|
|
char 1 72
|
|
char 1 69
|
|
char 1 95
|
|
char 1 75
|
|
char 1 73
|
|
char 1 76
|
|
char 1 76
|
|
char 1 95
|
|
char 1 76
|
|
char 1 73
|
|
char 1 77
|
|
char 1 73
|
|
char 1 84
|
|
char 1 0
|
|
align 1
|
|
LABELV $853
|
|
char 1 83
|
|
char 1 86
|
|
char 1 73
|
|
char 1 78
|
|
char 1 71
|
|
char 1 65
|
|
char 1 77
|
|
char 1 69
|
|
char 1 0
|
|
align 1
|
|
LABELV $852
|
|
char 1 112
|
|
char 1 114
|
|
char 1 105
|
|
char 1 110
|
|
char 1 116
|
|
char 1 32
|
|
char 1 34
|
|
char 1 82
|
|
char 1 101
|
|
char 1 100
|
|
char 1 32
|
|
char 1 37
|
|
char 1 115
|
|
char 1 10
|
|
char 1 34
|
|
char 1 0
|
|
align 1
|
|
LABELV $839
|
|
char 1 84
|
|
char 1 105
|
|
char 1 109
|
|
char 1 101
|
|
char 1 108
|
|
char 1 105
|
|
char 1 109
|
|
char 1 105
|
|
char 1 116
|
|
char 1 32
|
|
char 1 104
|
|
char 1 105
|
|
char 1 116
|
|
char 1 46
|
|
char 1 0
|
|
align 1
|
|
LABELV $838
|
|
char 1 112
|
|
char 1 114
|
|
char 1 105
|
|
char 1 110
|
|
char 1 116
|
|
char 1 32
|
|
char 1 34
|
|
char 1 84
|
|
char 1 105
|
|
char 1 109
|
|
char 1 101
|
|
char 1 108
|
|
char 1 105
|
|
char 1 109
|
|
char 1 105
|
|
char 1 116
|
|
char 1 32
|
|
char 1 104
|
|
char 1 105
|
|
char 1 116
|
|
char 1 46
|
|
char 1 10
|
|
char 1 34
|
|
char 1 0
|
|
align 1
|
|
LABELV $735
|
|
char 1 37
|
|
char 1 105
|
|
char 1 124
|
|
char 1 37
|
|
char 1 105
|
|
char 1 0
|
|
align 1
|
|
LABELV $702
|
|
char 1 115
|
|
char 1 112
|
|
char 1 76
|
|
char 1 111
|
|
char 1 115
|
|
char 1 101
|
|
char 1 10
|
|
char 1 0
|
|
align 1
|
|
LABELV $701
|
|
char 1 115
|
|
char 1 112
|
|
char 1 87
|
|
char 1 105
|
|
char 1 110
|
|
char 1 10
|
|
char 1 0
|
|
align 1
|
|
LABELV $678
|
|
char 1 115
|
|
char 1 99
|
|
char 1 111
|
|
char 1 114
|
|
char 1 101
|
|
char 1 58
|
|
char 1 32
|
|
char 1 37
|
|
char 1 105
|
|
char 1 32
|
|
char 1 32
|
|
char 1 112
|
|
char 1 105
|
|
char 1 110
|
|
char 1 103
|
|
char 1 58
|
|
char 1 32
|
|
char 1 37
|
|
char 1 105
|
|
char 1 32
|
|
char 1 32
|
|
char 1 99
|
|
char 1 108
|
|
char 1 105
|
|
char 1 101
|
|
char 1 110
|
|
char 1 116
|
|
char 1 58
|
|
char 1 32
|
|
char 1 37
|
|
char 1 105
|
|
char 1 32
|
|
char 1 37
|
|
char 1 115
|
|
char 1 10
|
|
char 1 0
|
|
align 1
|
|
LABELV $661
|
|
char 1 114
|
|
char 1 101
|
|
char 1 100
|
|
char 1 58
|
|
char 1 37
|
|
char 1 105
|
|
char 1 32
|
|
char 1 32
|
|
char 1 98
|
|
char 1 108
|
|
char 1 117
|
|
char 1 101
|
|
char 1 58
|
|
char 1 37
|
|
char 1 105
|
|
char 1 10
|
|
char 1 0
|
|
align 1
|
|
LABELV $652
|
|
char 1 69
|
|
char 1 120
|
|
char 1 105
|
|
char 1 116
|
|
char 1 58
|
|
char 1 32
|
|
char 1 37
|
|
char 1 115
|
|
char 1 10
|
|
char 1 0
|
|
align 1
|
|
LABELV $640
|
|
char 1 37
|
|
char 1 51
|
|
char 1 105
|
|
char 1 58
|
|
char 1 37
|
|
char 1 105
|
|
char 1 37
|
|
char 1 105
|
|
char 1 32
|
|
char 1 0
|
|
align 1
|
|
LABELV $617
|
|
char 1 118
|
|
char 1 115
|
|
char 1 116
|
|
char 1 114
|
|
char 1 32
|
|
char 1 110
|
|
char 1 101
|
|
char 1 120
|
|
char 1 116
|
|
char 1 109
|
|
char 1 97
|
|
char 1 112
|
|
char 1 10
|
|
char 1 0
|
|
align 1
|
|
LABELV $613
|
|
char 1 109
|
|
char 1 97
|
|
char 1 112
|
|
char 1 95
|
|
char 1 114
|
|
char 1 101
|
|
char 1 115
|
|
char 1 116
|
|
char 1 97
|
|
char 1 114
|
|
char 1 116
|
|
char 1 32
|
|
char 1 48
|
|
char 1 10
|
|
char 1 0
|
|
align 1
|
|
LABELV $542
|
|
char 1 105
|
|
char 1 110
|
|
char 1 102
|
|
char 1 111
|
|
char 1 95
|
|
char 1 112
|
|
char 1 108
|
|
char 1 97
|
|
char 1 121
|
|
char 1 101
|
|
char 1 114
|
|
char 1 95
|
|
char 1 105
|
|
char 1 110
|
|
char 1 116
|
|
char 1 101
|
|
char 1 114
|
|
char 1 109
|
|
char 1 105
|
|
char 1 115
|
|
char 1 115
|
|
char 1 105
|
|
char 1 111
|
|
char 1 110
|
|
char 1 0
|
|
align 1
|
|
LABELV $375
|
|
char 1 37
|
|
char 1 105
|
|
char 1 0
|
|
align 1
|
|
LABELV $363
|
|
char 1 115
|
|
char 1 0
|
|
align 1
|
|
LABELV $354
|
|
char 1 102
|
|
char 1 0
|
|
align 1
|
|
LABELV $329
|
|
char 1 37
|
|
char 1 115
|
|
char 1 0
|
|
align 1
|
|
LABELV $323
|
|
char 1 83
|
|
char 1 104
|
|
char 1 117
|
|
char 1 116
|
|
char 1 100
|
|
char 1 111
|
|
char 1 119
|
|
char 1 110
|
|
char 1 71
|
|
char 1 97
|
|
char 1 109
|
|
char 1 101
|
|
char 1 58
|
|
char 1 10
|
|
char 1 0
|
|
align 1
|
|
LABELV $319
|
|
char 1 61
|
|
char 1 61
|
|
char 1 61
|
|
char 1 61
|
|
char 1 32
|
|
char 1 83
|
|
char 1 104
|
|
char 1 117
|
|
char 1 116
|
|
char 1 100
|
|
char 1 111
|
|
char 1 119
|
|
char 1 110
|
|
char 1 71
|
|
char 1 97
|
|
char 1 109
|
|
char 1 101
|
|
char 1 32
|
|
char 1 61
|
|
char 1 61
|
|
char 1 61
|
|
char 1 61
|
|
char 1 10
|
|
char 1 0
|
|
align 1
|
|
LABELV $317
|
|
char 1 98
|
|
char 1 111
|
|
char 1 116
|
|
char 1 95
|
|
char 1 101
|
|
char 1 110
|
|
char 1 97
|
|
char 1 98
|
|
char 1 108
|
|
char 1 101
|
|
char 1 0
|
|
align 1
|
|
LABELV $314
|
|
char 1 115
|
|
char 1 111
|
|
char 1 117
|
|
char 1 110
|
|
char 1 100
|
|
char 1 47
|
|
char 1 112
|
|
char 1 108
|
|
char 1 97
|
|
char 1 121
|
|
char 1 101
|
|
char 1 114
|
|
char 1 47
|
|
char 1 103
|
|
char 1 117
|
|
char 1 114
|
|
char 1 112
|
|
char 1 50
|
|
char 1 46
|
|
char 1 119
|
|
char 1 97
|
|
char 1 118
|
|
char 1 0
|
|
align 1
|
|
LABELV $313
|
|
char 1 115
|
|
char 1 111
|
|
char 1 117
|
|
char 1 110
|
|
char 1 100
|
|
char 1 47
|
|
char 1 112
|
|
char 1 108
|
|
char 1 97
|
|
char 1 121
|
|
char 1 101
|
|
char 1 114
|
|
char 1 47
|
|
char 1 103
|
|
char 1 117
|
|
char 1 114
|
|
char 1 112
|
|
char 1 49
|
|
char 1 46
|
|
char 1 119
|
|
char 1 97
|
|
char 1 118
|
|
char 1 0
|
|
align 1
|
|
LABELV $312
|
|
char 1 109
|
|
char 1 111
|
|
char 1 100
|
|
char 1 101
|
|
char 1 108
|
|
char 1 115
|
|
char 1 47
|
|
char 1 109
|
|
char 1 97
|
|
char 1 112
|
|
char 1 111
|
|
char 1 98
|
|
char 1 106
|
|
char 1 101
|
|
char 1 99
|
|
char 1 116
|
|
char 1 115
|
|
char 1 47
|
|
char 1 112
|
|
char 1 111
|
|
char 1 100
|
|
char 1 105
|
|
char 1 117
|
|
char 1 109
|
|
char 1 47
|
|
char 1 112
|
|
char 1 111
|
|
char 1 100
|
|
char 1 105
|
|
char 1 117
|
|
char 1 109
|
|
char 1 52
|
|
char 1 46
|
|
char 1 109
|
|
char 1 100
|
|
char 1 51
|
|
char 1 0
|
|
align 1
|
|
LABELV $310
|
|
char 1 99
|
|
char 1 111
|
|
char 1 109
|
|
char 1 95
|
|
char 1 98
|
|
char 1 117
|
|
char 1 105
|
|
char 1 108
|
|
char 1 100
|
|
char 1 83
|
|
char 1 99
|
|
char 1 114
|
|
char 1 105
|
|
char 1 112
|
|
char 1 116
|
|
char 1 0
|
|
align 1
|
|
LABELV $306
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 10
|
|
char 1 0
|
|
align 1
|
|
LABELV $305
|
|
char 1 45
|
|
char 1 49
|
|
char 1 124
|
|
char 1 45
|
|
char 1 49
|
|
char 1 0
|
|
align 1
|
|
LABELV $304
|
|
char 1 45
|
|
char 1 49
|
|
char 1 0
|
|
align 1
|
|
LABELV $285
|
|
char 1 78
|
|
char 1 111
|
|
char 1 116
|
|
char 1 32
|
|
char 1 108
|
|
char 1 111
|
|
char 1 103
|
|
char 1 103
|
|
char 1 105
|
|
char 1 110
|
|
char 1 103
|
|
char 1 32
|
|
char 1 116
|
|
char 1 111
|
|
char 1 32
|
|
char 1 100
|
|
char 1 105
|
|
char 1 115
|
|
char 1 107
|
|
char 1 46
|
|
char 1 10
|
|
char 1 0
|
|
align 1
|
|
LABELV $284
|
|
char 1 73
|
|
char 1 110
|
|
char 1 105
|
|
char 1 116
|
|
char 1 71
|
|
char 1 97
|
|
char 1 109
|
|
char 1 101
|
|
char 1 58
|
|
char 1 32
|
|
char 1 37
|
|
char 1 115
|
|
char 1 10
|
|
char 1 0
|
|
align 1
|
|
LABELV $283
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 10
|
|
char 1 0
|
|
align 1
|
|
LABELV $281
|
|
char 1 87
|
|
char 1 65
|
|
char 1 82
|
|
char 1 78
|
|
char 1 73
|
|
char 1 78
|
|
char 1 71
|
|
char 1 58
|
|
char 1 32
|
|
char 1 67
|
|
char 1 111
|
|
char 1 117
|
|
char 1 108
|
|
char 1 100
|
|
char 1 110
|
|
char 1 39
|
|
char 1 116
|
|
char 1 32
|
|
char 1 111
|
|
char 1 112
|
|
char 1 101
|
|
char 1 110
|
|
char 1 32
|
|
char 1 108
|
|
char 1 111
|
|
char 1 103
|
|
char 1 102
|
|
char 1 105
|
|
char 1 108
|
|
char 1 101
|
|
char 1 58
|
|
char 1 32
|
|
char 1 37
|
|
char 1 115
|
|
char 1 10
|
|
char 1 0
|
|
align 1
|
|
LABELV $266
|
|
char 1 115
|
|
char 1 111
|
|
char 1 117
|
|
char 1 110
|
|
char 1 100
|
|
char 1 47
|
|
char 1 112
|
|
char 1 108
|
|
char 1 97
|
|
char 1 121
|
|
char 1 101
|
|
char 1 114
|
|
char 1 47
|
|
char 1 102
|
|
char 1 114
|
|
char 1 121
|
|
char 1 46
|
|
char 1 119
|
|
char 1 97
|
|
char 1 118
|
|
char 1 0
|
|
align 1
|
|
LABELV $262
|
|
char 1 103
|
|
char 1 97
|
|
char 1 109
|
|
char 1 101
|
|
char 1 100
|
|
char 1 97
|
|
char 1 116
|
|
char 1 101
|
|
char 1 58
|
|
char 1 32
|
|
char 1 37
|
|
char 1 115
|
|
char 1 10
|
|
char 1 0
|
|
align 1
|
|
LABELV $261
|
|
char 1 103
|
|
char 1 97
|
|
char 1 109
|
|
char 1 101
|
|
char 1 110
|
|
char 1 97
|
|
char 1 109
|
|
char 1 101
|
|
char 1 58
|
|
char 1 32
|
|
char 1 37
|
|
char 1 115
|
|
char 1 10
|
|
char 1 0
|
|
align 1
|
|
LABELV $260
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 32
|
|
char 1 71
|
|
char 1 97
|
|
char 1 109
|
|
char 1 101
|
|
char 1 32
|
|
char 1 73
|
|
char 1 110
|
|
char 1 105
|
|
char 1 116
|
|
char 1 105
|
|
char 1 97
|
|
char 1 108
|
|
char 1 105
|
|
char 1 122
|
|
char 1 97
|
|
char 1 116
|
|
char 1 105
|
|
char 1 111
|
|
char 1 110
|
|
char 1 32
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 45
|
|
char 1 10
|
|
char 1 0
|
|
align 1
|
|
LABELV $254
|
|
char 1 112
|
|
char 1 114
|
|
char 1 105
|
|
char 1 110
|
|
char 1 116
|
|
char 1 32
|
|
char 1 34
|
|
char 1 83
|
|
char 1 101
|
|
char 1 114
|
|
char 1 118
|
|
char 1 101
|
|
char 1 114
|
|
char 1 58
|
|
char 1 32
|
|
char 1 37
|
|
char 1 115
|
|
char 1 32
|
|
char 1 99
|
|
char 1 104
|
|
char 1 97
|
|
char 1 110
|
|
char 1 103
|
|
char 1 101
|
|
char 1 100
|
|
char 1 32
|
|
char 1 116
|
|
char 1 111
|
|
char 1 32
|
|
char 1 37
|
|
char 1 115
|
|
char 1 10
|
|
char 1 34
|
|
char 1 0
|
|
align 1
|
|
LABELV $239
|
|
char 1 103
|
|
char 1 95
|
|
char 1 103
|
|
char 1 97
|
|
char 1 109
|
|
char 1 101
|
|
char 1 116
|
|
char 1 121
|
|
char 1 112
|
|
char 1 101
|
|
char 1 32
|
|
char 1 37
|
|
char 1 105
|
|
char 1 32
|
|
char 1 105
|
|
char 1 115
|
|
char 1 32
|
|
char 1 111
|
|
char 1 117
|
|
char 1 116
|
|
char 1 32
|
|
char 1 111
|
|
char 1 102
|
|
char 1 32
|
|
char 1 114
|
|
char 1 97
|
|
char 1 110
|
|
char 1 103
|
|
char 1 101
|
|
char 1 44
|
|
char 1 32
|
|
char 1 100
|
|
char 1 101
|
|
char 1 102
|
|
char 1 97
|
|
char 1 117
|
|
char 1 108
|
|
char 1 116
|
|
char 1 105
|
|
char 1 110
|
|
char 1 103
|
|
char 1 32
|
|
char 1 116
|
|
char 1 111
|
|
char 1 32
|
|
char 1 48
|
|
char 1 10
|
|
char 1 0
|
|
align 1
|
|
LABELV $221
|
|
char 1 37
|
|
char 1 105
|
|
char 1 32
|
|
char 1 116
|
|
char 1 101
|
|
char 1 97
|
|
char 1 109
|
|
char 1 115
|
|
char 1 32
|
|
char 1 119
|
|
char 1 105
|
|
char 1 116
|
|
char 1 104
|
|
char 1 32
|
|
char 1 37
|
|
char 1 105
|
|
char 1 32
|
|
char 1 101
|
|
char 1 110
|
|
char 1 116
|
|
char 1 105
|
|
char 1 116
|
|
char 1 105
|
|
char 1 101
|
|
char 1 115
|
|
char 1 10
|
|
char 1 0
|
|
align 1
|
|
LABELV $173
|
|
char 1 103
|
|
char 1 95
|
|
char 1 116
|
|
char 1 105
|
|
char 1 109
|
|
char 1 101
|
|
char 1 111
|
|
char 1 117
|
|
char 1 116
|
|
char 1 116
|
|
char 1 111
|
|
char 1 115
|
|
char 1 112
|
|
char 1 101
|
|
char 1 99
|
|
char 1 0
|
|
align 1
|
|
LABELV $172
|
|
char 1 103
|
|
char 1 95
|
|
char 1 102
|
|
char 1 111
|
|
char 1 114
|
|
char 1 99
|
|
char 1 101
|
|
char 1 68
|
|
char 1 111
|
|
char 1 100
|
|
char 1 103
|
|
char 1 101
|
|
char 1 0
|
|
align 1
|
|
LABELV $171
|
|
char 1 103
|
|
char 1 95
|
|
char 1 100
|
|
char 1 105
|
|
char 1 115
|
|
char 1 109
|
|
char 1 101
|
|
char 1 109
|
|
char 1 98
|
|
char 1 101
|
|
char 1 114
|
|
char 1 0
|
|
align 1
|
|
LABELV $170
|
|
char 1 103
|
|
char 1 95
|
|
char 1 114
|
|
char 1 97
|
|
char 1 110
|
|
char 1 107
|
|
char 1 105
|
|
char 1 110
|
|
char 1 103
|
|
char 1 115
|
|
char 1 0
|
|
align 1
|
|
LABELV $169
|
|
char 1 112
|
|
char 1 109
|
|
char 1 111
|
|
char 1 118
|
|
char 1 101
|
|
char 1 95
|
|
char 1 109
|
|
char 1 115
|
|
char 1 101
|
|
char 1 99
|
|
char 1 0
|
|
align 1
|
|
LABELV $168
|
|
char 1 112
|
|
char 1 109
|
|
char 1 111
|
|
char 1 118
|
|
char 1 101
|
|
char 1 95
|
|
char 1 102
|
|
char 1 105
|
|
char 1 120
|
|
char 1 101
|
|
char 1 100
|
|
char 1 0
|
|
align 1
|
|
LABELV $167
|
|
char 1 103
|
|
char 1 95
|
|
char 1 115
|
|
char 1 109
|
|
char 1 111
|
|
char 1 111
|
|
char 1 116
|
|
char 1 104
|
|
char 1 67
|
|
char 1 108
|
|
char 1 105
|
|
char 1 101
|
|
char 1 110
|
|
char 1 116
|
|
char 1 115
|
|
char 1 0
|
|
align 1
|
|
LABELV $166
|
|
char 1 103
|
|
char 1 95
|
|
char 1 101
|
|
char 1 110
|
|
char 1 97
|
|
char 1 98
|
|
char 1 108
|
|
char 1 101
|
|
char 1 66
|
|
char 1 114
|
|
char 1 101
|
|
char 1 97
|
|
char 1 116
|
|
char 1 104
|
|
char 1 0
|
|
align 1
|
|
LABELV $165
|
|
char 1 103
|
|
char 1 95
|
|
char 1 101
|
|
char 1 110
|
|
char 1 97
|
|
char 1 98
|
|
char 1 108
|
|
char 1 101
|
|
char 1 68
|
|
char 1 117
|
|
char 1 115
|
|
char 1 116
|
|
char 1 0
|
|
align 1
|
|
LABELV $164
|
|
char 1 117
|
|
char 1 105
|
|
char 1 95
|
|
char 1 115
|
|
char 1 105
|
|
char 1 110
|
|
char 1 103
|
|
char 1 108
|
|
char 1 101
|
|
char 1 80
|
|
char 1 108
|
|
char 1 97
|
|
char 1 121
|
|
char 1 101
|
|
char 1 114
|
|
char 1 65
|
|
char 1 99
|
|
char 1 116
|
|
char 1 105
|
|
char 1 118
|
|
char 1 101
|
|
char 1 0
|
|
align 1
|
|
LABELV $163
|
|
char 1 82
|
|
char 1 101
|
|
char 1 98
|
|
char 1 101
|
|
char 1 108
|
|
char 1 108
|
|
char 1 105
|
|
char 1 111
|
|
char 1 110
|
|
char 1 0
|
|
align 1
|
|
LABELV $162
|
|
char 1 103
|
|
char 1 95
|
|
char 1 98
|
|
char 1 108
|
|
char 1 117
|
|
char 1 101
|
|
char 1 116
|
|
char 1 101
|
|
char 1 97
|
|
char 1 109
|
|
char 1 0
|
|
align 1
|
|
LABELV $161
|
|
char 1 69
|
|
char 1 109
|
|
char 1 112
|
|
char 1 105
|
|
char 1 114
|
|
char 1 101
|
|
char 1 0
|
|
align 1
|
|
LABELV $160
|
|
char 1 103
|
|
char 1 95
|
|
char 1 114
|
|
char 1 101
|
|
char 1 100
|
|
char 1 116
|
|
char 1 101
|
|
char 1 97
|
|
char 1 109
|
|
char 1 0
|
|
align 1
|
|
LABELV $159
|
|
char 1 103
|
|
char 1 95
|
|
char 1 108
|
|
char 1 105
|
|
char 1 115
|
|
char 1 116
|
|
char 1 69
|
|
char 1 110
|
|
char 1 116
|
|
char 1 105
|
|
char 1 116
|
|
char 1 121
|
|
char 1 0
|
|
align 1
|
|
LABELV $158
|
|
char 1 103
|
|
char 1 95
|
|
char 1 97
|
|
char 1 108
|
|
char 1 108
|
|
char 1 111
|
|
char 1 119
|
|
char 1 86
|
|
char 1 111
|
|
char 1 116
|
|
char 1 101
|
|
char 1 0
|
|
align 1
|
|
LABELV $157
|
|
char 1 55
|
|
char 1 48
|
|
char 1 0
|
|
align 1
|
|
LABELV $156
|
|
char 1 103
|
|
char 1 95
|
|
char 1 112
|
|
char 1 111
|
|
char 1 100
|
|
char 1 105
|
|
char 1 117
|
|
char 1 109
|
|
char 1 68
|
|
char 1 114
|
|
char 1 111
|
|
char 1 112
|
|
char 1 0
|
|
align 1
|
|
LABELV $155
|
|
char 1 56
|
|
char 1 48
|
|
char 1 0
|
|
align 1
|
|
LABELV $154
|
|
char 1 103
|
|
char 1 95
|
|
char 1 112
|
|
char 1 111
|
|
char 1 100
|
|
char 1 105
|
|
char 1 117
|
|
char 1 109
|
|
char 1 68
|
|
char 1 105
|
|
char 1 115
|
|
char 1 116
|
|
char 1 0
|
|
align 1
|
|
LABELV $153
|
|
char 1 99
|
|
char 1 111
|
|
char 1 109
|
|
char 1 95
|
|
char 1 98
|
|
char 1 108
|
|
char 1 111
|
|
char 1 111
|
|
char 1 100
|
|
char 1 0
|
|
align 1
|
|
LABELV $152
|
|
char 1 103
|
|
char 1 95
|
|
char 1 109
|
|
char 1 111
|
|
char 1 116
|
|
char 1 100
|
|
char 1 0
|
|
align 1
|
|
LABELV $151
|
|
char 1 103
|
|
char 1 95
|
|
char 1 100
|
|
char 1 101
|
|
char 1 98
|
|
char 1 117
|
|
char 1 103
|
|
char 1 65
|
|
char 1 108
|
|
char 1 108
|
|
char 1 111
|
|
char 1 99
|
|
char 1 0
|
|
align 1
|
|
LABELV $150
|
|
char 1 103
|
|
char 1 95
|
|
char 1 100
|
|
char 1 101
|
|
char 1 98
|
|
char 1 117
|
|
char 1 103
|
|
char 1 68
|
|
char 1 97
|
|
char 1 109
|
|
char 1 97
|
|
char 1 103
|
|
char 1 101
|
|
char 1 0
|
|
align 1
|
|
LABELV $149
|
|
char 1 103
|
|
char 1 95
|
|
char 1 100
|
|
char 1 101
|
|
char 1 98
|
|
char 1 117
|
|
char 1 103
|
|
char 1 77
|
|
char 1 111
|
|
char 1 118
|
|
char 1 101
|
|
char 1 0
|
|
align 1
|
|
LABELV $148
|
|
char 1 103
|
|
char 1 95
|
|
char 1 105
|
|
char 1 110
|
|
char 1 97
|
|
char 1 99
|
|
char 1 116
|
|
char 1 105
|
|
char 1 118
|
|
char 1 105
|
|
char 1 116
|
|
char 1 121
|
|
char 1 0
|
|
align 1
|
|
LABELV $147
|
|
char 1 54
|
|
char 1 48
|
|
char 1 0
|
|
align 1
|
|
LABELV $146
|
|
char 1 103
|
|
char 1 95
|
|
char 1 102
|
|
char 1 111
|
|
char 1 114
|
|
char 1 99
|
|
char 1 101
|
|
char 1 114
|
|
char 1 101
|
|
char 1 115
|
|
char 1 112
|
|
char 1 97
|
|
char 1 119
|
|
char 1 110
|
|
char 1 0
|
|
align 1
|
|
LABELV $145
|
|
char 1 103
|
|
char 1 95
|
|
char 1 97
|
|
char 1 100
|
|
char 1 97
|
|
char 1 112
|
|
char 1 116
|
|
char 1 114
|
|
char 1 101
|
|
char 1 115
|
|
char 1 112
|
|
char 1 97
|
|
char 1 119
|
|
char 1 110
|
|
char 1 0
|
|
align 1
|
|
LABELV $144
|
|
char 1 103
|
|
char 1 95
|
|
char 1 119
|
|
char 1 101
|
|
char 1 97
|
|
char 1 112
|
|
char 1 111
|
|
char 1 110
|
|
char 1 84
|
|
char 1 101
|
|
char 1 97
|
|
char 1 109
|
|
char 1 82
|
|
char 1 101
|
|
char 1 115
|
|
char 1 112
|
|
char 1 97
|
|
char 1 119
|
|
char 1 110
|
|
char 1 0
|
|
align 1
|
|
LABELV $143
|
|
char 1 53
|
|
char 1 0
|
|
align 1
|
|
LABELV $142
|
|
char 1 103
|
|
char 1 95
|
|
char 1 119
|
|
char 1 101
|
|
char 1 97
|
|
char 1 112
|
|
char 1 111
|
|
char 1 110
|
|
char 1 114
|
|
char 1 101
|
|
char 1 115
|
|
char 1 112
|
|
char 1 97
|
|
char 1 119
|
|
char 1 110
|
|
char 1 0
|
|
align 1
|
|
LABELV $141
|
|
char 1 103
|
|
char 1 95
|
|
char 1 113
|
|
char 1 117
|
|
char 1 97
|
|
char 1 100
|
|
char 1 102
|
|
char 1 97
|
|
char 1 99
|
|
char 1 116
|
|
char 1 111
|
|
char 1 114
|
|
char 1 0
|
|
align 1
|
|
LABELV $140
|
|
char 1 49
|
|
char 1 48
|
|
char 1 48
|
|
char 1 48
|
|
char 1 0
|
|
align 1
|
|
LABELV $139
|
|
char 1 103
|
|
char 1 95
|
|
char 1 107
|
|
char 1 110
|
|
char 1 111
|
|
char 1 99
|
|
char 1 107
|
|
char 1 98
|
|
char 1 97
|
|
char 1 99
|
|
char 1 107
|
|
char 1 0
|
|
align 1
|
|
LABELV $138
|
|
char 1 56
|
|
char 1 48
|
|
char 1 48
|
|
char 1 0
|
|
align 1
|
|
LABELV $137
|
|
char 1 103
|
|
char 1 95
|
|
char 1 103
|
|
char 1 114
|
|
char 1 97
|
|
char 1 118
|
|
char 1 105
|
|
char 1 116
|
|
char 1 121
|
|
char 1 0
|
|
align 1
|
|
LABELV $136
|
|
char 1 50
|
|
char 1 53
|
|
char 1 48
|
|
char 1 0
|
|
align 1
|
|
LABELV $135
|
|
char 1 103
|
|
char 1 95
|
|
char 1 115
|
|
char 1 112
|
|
char 1 101
|
|
char 1 101
|
|
char 1 100
|
|
char 1 0
|
|
align 1
|
|
LABELV $134
|
|
char 1 100
|
|
char 1 101
|
|
char 1 100
|
|
char 1 105
|
|
char 1 99
|
|
char 1 97
|
|
char 1 116
|
|
char 1 101
|
|
char 1 100
|
|
char 1 0
|
|
align 1
|
|
LABELV $133
|
|
char 1 103
|
|
char 1 95
|
|
char 1 110
|
|
char 1 101
|
|
char 1 101
|
|
char 1 100
|
|
char 1 112
|
|
char 1 97
|
|
char 1 115
|
|
char 1 115
|
|
char 1 0
|
|
align 1
|
|
LABELV $132
|
|
char 1 103
|
|
char 1 95
|
|
char 1 102
|
|
char 1 105
|
|
char 1 108
|
|
char 1 116
|
|
char 1 101
|
|
char 1 114
|
|
char 1 66
|
|
char 1 97
|
|
char 1 110
|
|
char 1 0
|
|
align 1
|
|
LABELV $131
|
|
char 1 103
|
|
char 1 95
|
|
char 1 98
|
|
char 1 97
|
|
char 1 110
|
|
char 1 73
|
|
char 1 80
|
|
char 1 115
|
|
char 1 0
|
|
align 1
|
|
LABELV $130
|
|
char 1 103
|
|
char 1 95
|
|
char 1 112
|
|
char 1 97
|
|
char 1 115
|
|
char 1 115
|
|
char 1 119
|
|
char 1 111
|
|
char 1 114
|
|
char 1 100
|
|
char 1 0
|
|
align 1
|
|
LABELV $129
|
|
char 1 115
|
|
char 1 116
|
|
char 1 97
|
|
char 1 116
|
|
char 1 108
|
|
char 1 111
|
|
char 1 103
|
|
char 1 46
|
|
char 1 108
|
|
char 1 111
|
|
char 1 103
|
|
char 1 0
|
|
align 1
|
|
LABELV $128
|
|
char 1 103
|
|
char 1 95
|
|
char 1 115
|
|
char 1 116
|
|
char 1 97
|
|
char 1 116
|
|
char 1 76
|
|
char 1 111
|
|
char 1 103
|
|
char 1 70
|
|
char 1 105
|
|
char 1 108
|
|
char 1 101
|
|
char 1 0
|
|
align 1
|
|
LABELV $127
|
|
char 1 103
|
|
char 1 95
|
|
char 1 115
|
|
char 1 116
|
|
char 1 97
|
|
char 1 116
|
|
char 1 76
|
|
char 1 111
|
|
char 1 103
|
|
char 1 0
|
|
align 1
|
|
LABELV $126
|
|
char 1 103
|
|
char 1 95
|
|
char 1 108
|
|
char 1 111
|
|
char 1 103
|
|
char 1 83
|
|
char 1 121
|
|
char 1 110
|
|
char 1 99
|
|
char 1 0
|
|
align 1
|
|
LABELV $125
|
|
char 1 103
|
|
char 1 97
|
|
char 1 109
|
|
char 1 101
|
|
char 1 115
|
|
char 1 46
|
|
char 1 108
|
|
char 1 111
|
|
char 1 103
|
|
char 1 0
|
|
align 1
|
|
LABELV $124
|
|
char 1 103
|
|
char 1 95
|
|
char 1 108
|
|
char 1 111
|
|
char 1 103
|
|
char 1 0
|
|
align 1
|
|
LABELV $123
|
|
char 1 103
|
|
char 1 95
|
|
char 1 100
|
|
char 1 111
|
|
char 1 87
|
|
char 1 97
|
|
char 1 114
|
|
char 1 109
|
|
char 1 117
|
|
char 1 112
|
|
char 1 0
|
|
align 1
|
|
LABELV $122
|
|
char 1 103
|
|
char 1 95
|
|
char 1 119
|
|
char 1 97
|
|
char 1 114
|
|
char 1 109
|
|
char 1 117
|
|
char 1 112
|
|
char 1 0
|
|
align 1
|
|
LABELV $121
|
|
char 1 103
|
|
char 1 95
|
|
char 1 116
|
|
char 1 101
|
|
char 1 97
|
|
char 1 109
|
|
char 1 70
|
|
char 1 111
|
|
char 1 114
|
|
char 1 99
|
|
char 1 101
|
|
char 1 66
|
|
char 1 97
|
|
char 1 108
|
|
char 1 97
|
|
char 1 110
|
|
char 1 99
|
|
char 1 101
|
|
char 1 0
|
|
align 1
|
|
LABELV $120
|
|
char 1 103
|
|
char 1 95
|
|
char 1 116
|
|
char 1 101
|
|
char 1 97
|
|
char 1 109
|
|
char 1 65
|
|
char 1 117
|
|
char 1 116
|
|
char 1 111
|
|
char 1 74
|
|
char 1 111
|
|
char 1 105
|
|
char 1 110
|
|
char 1 0
|
|
align 1
|
|
LABELV $119
|
|
char 1 103
|
|
char 1 95
|
|
char 1 102
|
|
char 1 114
|
|
char 1 105
|
|
char 1 101
|
|
char 1 110
|
|
char 1 100
|
|
char 1 108
|
|
char 1 121
|
|
char 1 83
|
|
char 1 97
|
|
char 1 98
|
|
char 1 101
|
|
char 1 114
|
|
char 1 0
|
|
align 1
|
|
LABELV $118
|
|
char 1 103
|
|
char 1 95
|
|
char 1 102
|
|
char 1 114
|
|
char 1 105
|
|
char 1 101
|
|
char 1 110
|
|
char 1 100
|
|
char 1 108
|
|
char 1 121
|
|
char 1 70
|
|
char 1 105
|
|
char 1 114
|
|
char 1 101
|
|
char 1 0
|
|
align 1
|
|
LABELV $117
|
|
char 1 103
|
|
char 1 95
|
|
char 1 115
|
|
char 1 97
|
|
char 1 98
|
|
char 1 101
|
|
char 1 114
|
|
char 1 73
|
|
char 1 110
|
|
char 1 116
|
|
char 1 101
|
|
char 1 114
|
|
char 1 112
|
|
char 1 111
|
|
char 1 108
|
|
char 1 97
|
|
char 1 116
|
|
char 1 101
|
|
char 1 0
|
|
align 1
|
|
LABELV $116
|
|
char 1 103
|
|
char 1 95
|
|
char 1 115
|
|
char 1 121
|
|
char 1 110
|
|
char 1 99
|
|
char 1 104
|
|
char 1 114
|
|
char 1 111
|
|
char 1 110
|
|
char 1 111
|
|
char 1 117
|
|
char 1 115
|
|
char 1 67
|
|
char 1 108
|
|
char 1 105
|
|
char 1 101
|
|
char 1 110
|
|
char 1 116
|
|
char 1 115
|
|
char 1 0
|
|
align 1
|
|
LABELV $115
|
|
char 1 99
|
|
char 1 97
|
|
char 1 112
|
|
char 1 116
|
|
char 1 117
|
|
char 1 114
|
|
char 1 101
|
|
char 1 108
|
|
char 1 105
|
|
char 1 109
|
|
char 1 105
|
|
char 1 116
|
|
char 1 0
|
|
align 1
|
|
LABELV $114
|
|
char 1 116
|
|
char 1 105
|
|
char 1 109
|
|
char 1 101
|
|
char 1 108
|
|
char 1 105
|
|
char 1 109
|
|
char 1 105
|
|
char 1 116
|
|
char 1 0
|
|
align 1
|
|
LABELV $113
|
|
char 1 49
|
|
char 1 48
|
|
char 1 0
|
|
align 1
|
|
LABELV $112
|
|
char 1 100
|
|
char 1 117
|
|
char 1 101
|
|
char 1 108
|
|
char 1 95
|
|
char 1 102
|
|
char 1 114
|
|
char 1 97
|
|
char 1 103
|
|
char 1 108
|
|
char 1 105
|
|
char 1 109
|
|
char 1 105
|
|
char 1 116
|
|
char 1 0
|
|
align 1
|
|
LABELV $111
|
|
char 1 50
|
|
char 1 48
|
|
char 1 0
|
|
align 1
|
|
LABELV $110
|
|
char 1 102
|
|
char 1 114
|
|
char 1 97
|
|
char 1 103
|
|
char 1 108
|
|
char 1 105
|
|
char 1 109
|
|
char 1 105
|
|
char 1 116
|
|
char 1 0
|
|
align 1
|
|
LABELV $109
|
|
char 1 103
|
|
char 1 95
|
|
char 1 100
|
|
char 1 117
|
|
char 1 101
|
|
char 1 108
|
|
char 1 87
|
|
char 1 101
|
|
char 1 97
|
|
char 1 112
|
|
char 1 111
|
|
char 1 110
|
|
char 1 68
|
|
char 1 105
|
|
char 1 115
|
|
char 1 97
|
|
char 1 98
|
|
char 1 108
|
|
char 1 101
|
|
char 1 0
|
|
align 1
|
|
LABELV $108
|
|
char 1 103
|
|
char 1 95
|
|
char 1 119
|
|
char 1 101
|
|
char 1 97
|
|
char 1 112
|
|
char 1 111
|
|
char 1 110
|
|
char 1 68
|
|
char 1 105
|
|
char 1 115
|
|
char 1 97
|
|
char 1 98
|
|
char 1 108
|
|
char 1 101
|
|
char 1 0
|
|
align 1
|
|
LABELV $107
|
|
char 1 103
|
|
char 1 95
|
|
char 1 102
|
|
char 1 111
|
|
char 1 114
|
|
char 1 99
|
|
char 1 101
|
|
char 1 80
|
|
char 1 111
|
|
char 1 119
|
|
char 1 101
|
|
char 1 114
|
|
char 1 68
|
|
char 1 105
|
|
char 1 115
|
|
char 1 97
|
|
char 1 98
|
|
char 1 108
|
|
char 1 101
|
|
char 1 0
|
|
align 1
|
|
LABELV $106
|
|
char 1 51
|
|
char 1 48
|
|
char 1 48
|
|
char 1 48
|
|
char 1 0
|
|
align 1
|
|
LABELV $105
|
|
char 1 103
|
|
char 1 95
|
|
char 1 115
|
|
char 1 112
|
|
char 1 97
|
|
char 1 119
|
|
char 1 110
|
|
char 1 73
|
|
char 1 110
|
|
char 1 118
|
|
char 1 117
|
|
char 1 108
|
|
char 1 110
|
|
char 1 101
|
|
char 1 114
|
|
char 1 97
|
|
char 1 98
|
|
char 1 105
|
|
char 1 108
|
|
char 1 105
|
|
char 1 116
|
|
char 1 121
|
|
char 1 0
|
|
align 1
|
|
LABELV $104
|
|
char 1 50
|
|
char 1 48
|
|
char 1 48
|
|
char 1 0
|
|
align 1
|
|
LABELV $103
|
|
char 1 103
|
|
char 1 95
|
|
char 1 102
|
|
char 1 111
|
|
char 1 114
|
|
char 1 99
|
|
char 1 101
|
|
char 1 82
|
|
char 1 101
|
|
char 1 103
|
|
char 1 101
|
|
char 1 110
|
|
char 1 84
|
|
char 1 105
|
|
char 1 109
|
|
char 1 101
|
|
char 1 0
|
|
align 1
|
|
LABELV $102
|
|
char 1 103
|
|
char 1 95
|
|
char 1 115
|
|
char 1 97
|
|
char 1 98
|
|
char 1 101
|
|
char 1 114
|
|
char 1 76
|
|
char 1 111
|
|
char 1 99
|
|
char 1 107
|
|
char 1 105
|
|
char 1 110
|
|
char 1 103
|
|
char 1 0
|
|
align 1
|
|
LABELV $101
|
|
char 1 49
|
|
char 1 0
|
|
align 1
|
|
LABELV $100
|
|
char 1 103
|
|
char 1 95
|
|
char 1 112
|
|
char 1 114
|
|
char 1 105
|
|
char 1 118
|
|
char 1 97
|
|
char 1 116
|
|
char 1 101
|
|
char 1 68
|
|
char 1 117
|
|
char 1 101
|
|
char 1 108
|
|
char 1 0
|
|
align 1
|
|
LABELV $99
|
|
char 1 103
|
|
char 1 95
|
|
char 1 102
|
|
char 1 111
|
|
char 1 114
|
|
char 1 99
|
|
char 1 101
|
|
char 1 66
|
|
char 1 97
|
|
char 1 115
|
|
char 1 101
|
|
char 1 100
|
|
char 1 84
|
|
char 1 101
|
|
char 1 97
|
|
char 1 109
|
|
char 1 115
|
|
char 1 0
|
|
align 1
|
|
LABELV $98
|
|
char 1 54
|
|
char 1 0
|
|
align 1
|
|
LABELV $97
|
|
char 1 103
|
|
char 1 95
|
|
char 1 109
|
|
char 1 97
|
|
char 1 120
|
|
char 1 70
|
|
char 1 111
|
|
char 1 114
|
|
char 1 99
|
|
char 1 101
|
|
char 1 82
|
|
char 1 97
|
|
char 1 110
|
|
char 1 107
|
|
char 1 0
|
|
align 1
|
|
LABELV $96
|
|
char 1 100
|
|
char 1 109
|
|
char 1 102
|
|
char 1 108
|
|
char 1 97
|
|
char 1 103
|
|
char 1 115
|
|
char 1 0
|
|
align 1
|
|
LABELV $95
|
|
char 1 103
|
|
char 1 95
|
|
char 1 97
|
|
char 1 117
|
|
char 1 116
|
|
char 1 111
|
|
char 1 77
|
|
char 1 97
|
|
char 1 112
|
|
char 1 67
|
|
char 1 121
|
|
char 1 99
|
|
char 1 108
|
|
char 1 101
|
|
char 1 0
|
|
align 1
|
|
LABELV $94
|
|
char 1 103
|
|
char 1 95
|
|
char 1 102
|
|
char 1 102
|
|
char 1 95
|
|
char 1 111
|
|
char 1 98
|
|
char 1 106
|
|
char 1 101
|
|
char 1 99
|
|
char 1 116
|
|
char 1 105
|
|
char 1 118
|
|
char 1 101
|
|
char 1 115
|
|
char 1 0
|
|
align 1
|
|
LABELV $93
|
|
char 1 103
|
|
char 1 95
|
|
char 1 109
|
|
char 1 97
|
|
char 1 120
|
|
char 1 71
|
|
char 1 97
|
|
char 1 109
|
|
char 1 101
|
|
char 1 67
|
|
char 1 108
|
|
char 1 105
|
|
char 1 101
|
|
char 1 110
|
|
char 1 116
|
|
char 1 115
|
|
char 1 0
|
|
align 1
|
|
LABELV $92
|
|
char 1 56
|
|
char 1 0
|
|
align 1
|
|
LABELV $91
|
|
char 1 115
|
|
char 1 118
|
|
char 1 95
|
|
char 1 109
|
|
char 1 97
|
|
char 1 120
|
|
char 1 99
|
|
char 1 108
|
|
char 1 105
|
|
char 1 101
|
|
char 1 110
|
|
char 1 116
|
|
char 1 115
|
|
char 1 0
|
|
align 1
|
|
LABELV $90
|
|
char 1 51
|
|
char 1 0
|
|
align 1
|
|
LABELV $89
|
|
char 1 103
|
|
char 1 95
|
|
char 1 77
|
|
char 1 97
|
|
char 1 120
|
|
char 1 72
|
|
char 1 111
|
|
char 1 108
|
|
char 1 111
|
|
char 1 99
|
|
char 1 114
|
|
char 1 111
|
|
char 1 110
|
|
char 1 67
|
|
char 1 97
|
|
char 1 114
|
|
char 1 114
|
|
char 1 121
|
|
char 1 0
|
|
align 1
|
|
LABELV $88
|
|
char 1 103
|
|
char 1 95
|
|
char 1 103
|
|
char 1 97
|
|
char 1 109
|
|
char 1 101
|
|
char 1 116
|
|
char 1 121
|
|
char 1 112
|
|
char 1 101
|
|
char 1 0
|
|
align 1
|
|
LABELV $87
|
|
char 1 115
|
|
char 1 118
|
|
char 1 95
|
|
char 1 109
|
|
char 1 97
|
|
char 1 112
|
|
char 1 110
|
|
char 1 97
|
|
char 1 109
|
|
char 1 101
|
|
char 1 0
|
|
align 1
|
|
LABELV $86
|
|
char 1 48
|
|
char 1 0
|
|
align 1
|
|
LABELV $85
|
|
char 1 103
|
|
char 1 95
|
|
char 1 114
|
|
char 1 101
|
|
char 1 115
|
|
char 1 116
|
|
char 1 97
|
|
char 1 114
|
|
char 1 116
|
|
char 1 101
|
|
char 1 100
|
|
char 1 0
|
|
align 1
|
|
LABELV $84
|
|
char 1 77
|
|
char 1 97
|
|
char 1 114
|
|
char 1 32
|
|
char 1 48
|
|
char 1 49
|
|
char 1 32
|
|
char 1 50
|
|
char 1 48
|
|
char 1 48
|
|
char 1 50
|
|
char 1 0
|
|
align 1
|
|
LABELV $83
|
|
char 1 103
|
|
char 1 97
|
|
char 1 109
|
|
char 1 101
|
|
char 1 100
|
|
char 1 97
|
|
char 1 116
|
|
char 1 101
|
|
char 1 0
|
|
align 1
|
|
LABELV $82
|
|
char 1 98
|
|
char 1 97
|
|
char 1 115
|
|
char 1 101
|
|
char 1 106
|
|
char 1 107
|
|
char 1 0
|
|
align 1
|
|
LABELV $81
|
|
char 1 103
|
|
char 1 97
|
|
char 1 109
|
|
char 1 101
|
|
char 1 110
|
|
char 1 97
|
|
char 1 109
|
|
char 1 101
|
|
char 1 0
|
|
align 1
|
|
LABELV $80
|
|
char 1 0
|
|
align 1
|
|
LABELV $79
|
|
char 1 115
|
|
char 1 118
|
|
char 1 95
|
|
char 1 99
|
|
char 1 104
|
|
char 1 101
|
|
char 1 97
|
|
char 1 116
|
|
char 1 115
|
|
char 1 0
|