📄 m_gunner.pas
字号:
{----------------------------------------------------------------------------}
{ }
{ File(s): game\m_gunner.c }
{ }
{ Content: actor animation methods }
{ }
{ Initial conversion by : Slavisa Milojkovic [keeper@milnet.co.yu] }
{ Initial conversion on : 08-Apr-2002 }
{ }
{ This File contains part of convertion of Quake2 source to ObjectPascal. }
{ More information about this project can be found at: }
{ http://www.sulaco.co.za/quake2/ }
{ }
{ Copyright (C) 1997-2001 Id Software, Inc. }
{ }
{ This program is free software; you can redistribute it and/or }
{ modify it under the terms of the GNU General Public License }
{ as published by the Free Software Foundation; either version 2 }
{ of the License, or (at your option) any later version. }
{ }
{ This program is distributed in the hope that it will be useful, }
{ but WITHOUT ANY WARRANTY; without even the implied warranty of }
{ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. }
{ }
{ See the GNU General Public License for more details. }
{ }
{----------------------------------------------------------------------------}
{ Updated on : 3-Mar-2002 }
{----------------------------------------------------------------------------}
{ * Still dependent (to compile correctly) on: }
{ - g_local.pas }
{----------------------------------------------------------------------------}
{ * TODO: }
{----------------------------------------------------------------------------}
{
==============================================================================
GUNNER
==============================================================================
}
unit m_gunner;
interface
uses g_local.pas;
// Taken from m_gunner.h
// This file generated by ModelGen - Do NOT Modify
const
FRAME_stand01 0;
FRAME_stand02 1;
FRAME_stand03 2;
FRAME_stand04 3;
FRAME_stand05 4;
FRAME_stand06 5;
FRAME_stand07 6;
FRAME_stand08 7;
FRAME_stand09 8;
FRAME_stand10 9;
FRAME_stand11 10;
FRAME_stand12 11;
FRAME_stand13 12;
FRAME_stand14 13;
FRAME_stand15 14;
FRAME_stand16 15;
FRAME_stand17 16;
FRAME_stand18 17;
FRAME_stand19 18;
FRAME_stand20 19;
FRAME_stand21 20;
FRAME_stand22 21;
FRAME_stand23 22;
FRAME_stand24 23;
FRAME_stand25 24;
FRAME_stand26 25;
FRAME_stand27 26;
FRAME_stand28 27;
FRAME_stand29 28;
FRAME_stand30 29;
FRAME_stand31 30;
FRAME_stand32 31;
FRAME_stand33 32;
FRAME_stand34 33;
FRAME_stand35 34;
FRAME_stand36 35;
FRAME_stand37 36;
FRAME_stand38 37;
FRAME_stand39 38;
FRAME_stand40 39;
FRAME_stand41 40;
FRAME_stand42 41;
FRAME_stand43 42;
FRAME_stand44 43;
FRAME_stand45 44;
FRAME_stand46 45;
FRAME_stand47 46;
FRAME_stand48 47;
FRAME_stand49 48;
FRAME_stand50 49;
FRAME_stand51 50;
FRAME_stand52 51;
FRAME_stand53 52;
FRAME_stand54 53;
FRAME_stand55 54;
FRAME_stand56 55;
FRAME_stand57 56;
FRAME_stand58 57;
FRAME_stand59 58;
FRAME_stand60 59;
FRAME_stand61 60;
FRAME_stand62 61;
FRAME_stand63 62;
FRAME_stand64 63;
FRAME_stand65 64;
FRAME_stand66 65;
FRAME_stand67 66;
FRAME_stand68 67;
FRAME_stand69 68;
FRAME_stand70 69;
FRAME_walk01 70;
FRAME_walk02 71;
FRAME_walk03 72;
FRAME_walk04 73;
FRAME_walk05 74;
FRAME_walk06 75;
FRAME_walk07 76;
FRAME_walk08 77;
FRAME_walk09 78;
FRAME_walk10 79;
FRAME_walk11 80;
FRAME_walk12 81;
FRAME_walk13 82;
FRAME_walk14 83;
FRAME_walk15 84;
FRAME_walk16 85;
FRAME_walk17 86;
FRAME_walk18 87;
FRAME_walk19 88;
FRAME_walk20 89;
FRAME_walk21 90;
FRAME_walk22 91;
FRAME_walk23 92;
FRAME_walk24 93;
FRAME_run01 94;
FRAME_run02 95;
FRAME_run03 96;
FRAME_run04 97;
FRAME_run05 98;
FRAME_run06 99;
FRAME_run07 100;
FRAME_run08 101;
FRAME_runs01 102;
FRAME_runs02 103;
FRAME_runs03 104;
FRAME_runs04 105;
FRAME_runs05 106;
FRAME_runs06 107;
FRAME_attak101 108;
FRAME_attak102 109;
FRAME_attak103 110;
#define FRAME_attak104 111
#define FRAME_attak105 112
#define FRAME_attak106 113
#define FRAME_attak107 114
#define FRAME_attak108 115
#define FRAME_attak109 116
#define FRAME_attak110 117
#define FRAME_attak111 118
#define FRAME_attak112 119
#define FRAME_attak113 120
#define FRAME_attak114 121
#define FRAME_attak115 122
#define FRAME_attak116 123
#define FRAME_attak117 124
#define FRAME_attak118 125
#define FRAME_attak119 126
#define FRAME_attak120 127
#define FRAME_attak121 128
#define FRAME_attak201 129
#define FRAME_attak202 130
#define FRAME_attak203 131
#define FRAME_attak204 132
#define FRAME_attak205 133
#define FRAME_attak206 134
#define FRAME_attak207 135
#define FRAME_attak208 136
#define FRAME_attak209 137
#define FRAME_attak210 138
#define FRAME_attak211 139
#define FRAME_attak212 140
#define FRAME_attak213 141
#define FRAME_attak214 142
#define FRAME_attak215 143
#define FRAME_attak216 144
#define FRAME_attak217 145
#define FRAME_attak218 146
#define FRAME_attak219 147
#define FRAME_attak220 148
#define FRAME_attak221 149
#define FRAME_attak222 150
#define FRAME_attak223 151
#define FRAME_attak224 152
#define FRAME_attak225 153
#define FRAME_attak226 154
#define FRAME_attak227 155
#define FRAME_attak228 156
#define FRAME_attak229 157
#define FRAME_attak230 158
#define FRAME_pain101 159
#define FRAME_pain102 160
#define FRAME_pain103 161
#define FRAME_pain104 162
#define FRAME_pain105 163
#define FRAME_pain106 164
#define FRAME_pain107 165
#define FRAME_pain108 166
#define FRAME_pain109 167
#define FRAME_pain110 168
#define FRAME_pain111 169
#define FRAME_pain112 170
#define FRAME_pain113 171
#define FRAME_pain114 172
#define FRAME_pain115 173
#define FRAME_pain116 174
#define FRAME_pain117 175
#define FRAME_pain118 176
#define FRAME_pain201 177
#define FRAME_pain202 178
#define FRAME_pain203 179
#define FRAME_pain204 180
#define FRAME_pain205 181
#define FRAME_pain206 182
#define FRAME_pain207 183
#define FRAME_pain208 184
#define FRAME_pain301 185
#define FRAME_pain302 186
#define FRAME_pain303 187
#define FRAME_pain304 188
#define FRAME_pain305 189
#define FRAME_death01 190
#define FRAME_death02 191
#define FRAME_death03 192
#define FRAME_death04 193
#define FRAME_death05 194
#define FRAME_death06 195
#define FRAME_death07 196
#define FRAME_death08 197
#define FRAME_death09 198
#define FRAME_death10 199
#define FRAME_death11 200
#define FRAME_duck01 201
#define FRAME_duck02 202
#define FRAME_duck03 203
#define FRAME_duck04 204
#define FRAME_duck05 205
#define FRAME_duck06 206
#define FRAME_duck07 207
#define FRAME_duck08 208
#define MODEL_SCALE 1.150000
var
sound_pain,
sound_pain2,
sound_death,
sound_idle,
sound_open,
sound_search,
sound_sight: integer;
procedure gunner_idlesound (self: edict_t);
begin
gi.sound (self, CHAN_VOICE, sound_idle, 1, ATTN_IDLE, 0);
end;
procedure gunner_sight (self, other: edict_t);
begin
gi.sound (self, CHAN_VOICE, sound_sight, 1, ATTN_NORM, 0);
end;
procedure gunner_search (self: edict_t);
begin
gi.sound (self, CHAN_VOICE, sound_search, 1, ATTN_NORM, 0);
end;
visible := function(self, other: edict_t): qboolean; cdecl;
GunnerGrenade := procedure(self: edict_t); cdecl;
GunnerFire := procedure(self: edict_t); cdecl;
gunner_fire_chain := procedure(self: edict_t); cdecl;
gunner_refire_chain := procedure(self: edict_t); cdecl;
gunner_stand := procedure(self: edict_t); cdecl;
gunner_frames_fidget: mframe_t =
(
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, gunner_idlesound,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL
);
const
gunner_move_fidget: mmove_t = (FRAME_stand31, FRAME_stand70, gunner_frames_fidget, gunner_stand);
procedure gunner_fidget (self: edict_t);
begin
if (self.monsterinfo.aiflags & AI_STAND_GROUND) then
exit;
if (random() <= 0.05)
self.monsterinfo.currentmove := gunner_move_fidget;
end;
const
gunner_frames_stand: mframe_t =
[
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, gunner_fidget,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, gunner_fidget,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, NULL,
ai_stand, 0, gunner_fidget
];
const
gunner_move_stand: mmove_t = (FRAME_stand01, FRAME_stand30, gunner_frames_stand, NULL);
procedure gunner_stand (self: edict_t);
begin
self.monsterinfo.currentmove := gunner_move_stand;
end;
const
gunner_frames_walk: mframe_t =
[
ai_walk, 0, NULL,
ai_walk, 3, NULL,
ai_walk, 4, NULL,
ai_walk, 5, NULL,
ai_walk, 7, NULL,
ai_walk, 2, NULL,
ai_walk, 6, NULL,
ai_walk, 4, NULL,
ai_walk, 2, NULL,
ai_walk, 7, NULL,
ai_walk, 5, NULL,
ai_walk, 7, NULL,
ai_walk, 4, NULL
];
const
gunner_move_walk: mmove_t = (FRAME_walk07, FRAME_walk19, gunner_frames_walk, NULL);
procedure gunner_walk (self: edict_t);
begin
self.monsterinfo.currentmove := gunner_move_walk;
end;
const
gunner_frames_run: mframe_t =
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -