📄 m_insane.pas
字号:
{/*
==============================================================================
insane
==============================================================================
*/}
var sound_fist: integer;
var sound_shake: integer;
var sound_moan: integer;
var sound_scream: array[0..8-1] of integer;
procedure insane_fist(self: edict_p); cdecl;
procedure insane_shake(self: edict_p); cdecl;
procedure insane_moan(self: edict_p); cdecl;
procedure insane_scream (self: edict_p); cdecl;
// below declarations eliminates the need for the forward void proc's in the C source
procedure insane_cross(self: edict_p); cdecl;
procedure insane_walk(self: edict_p); cdecl;
procedure insane_run(self: edict_p); cdecl;
procedure insane_pain(self: edict_p; other: edict_p; kick: single; damage: Integer); cdecl;
procedure insane_onground(self: edict_p); cdecl;
procedure insane_checkdown(self: edict_p); cdecl;
procedure insane_checkup(self: edict_p); cdecl;
procedure insane_stand(self: edict_p); cdecl;
procedure insane_dead(self: edict_p); cdecl;
procedure insane_die(self: edict_p; inflictor: edict_p; attacker: edict_p; damage: Integer; const point: vec3_t); cdecl;
procedure SP_misc_insane(self: edict_p); cdecl;
implementation
uses g_ai, g_main, q_shared, game_add, GameUnit, g_local_add, g_misc,
g_utils, g_monster, CPas;
const
insane_frames_stand_normal : array [0..5] of mframe_t = (
(aifunc: ai_stand; dist: 0; thinkfunc: nil),
(aifunc: ai_stand; dist: 0; thinkfunc: nil),
(aifunc: ai_stand; dist: 0; thinkfunc: nil),
(aifunc: ai_stand; dist: 0; thinkfunc: nil),
(aifunc: ai_stand; dist: 0; thinkfunc: nil),
(aifunc: ai_stand; dist: 0; thinkfunc: insane_checkdown));
insane_move_stand_normal : mmove_t = (firstframe: FRAME_stand60; lastframe:FRAME_stand65; frame:@insane_frames_stand_normal;
endfunc: insane_stand);
insane_frames_stand_insane : array [0..29] of mframe_t = (
(aifunc: ai_stand; dist: 0; thinkfunc: insane_shake),
(aifunc: ai_stand; dist: 0; thinkfunc: nil),
(aifunc: ai_stand; dist: 0; thinkfunc: nil),
(aifunc: ai_stand; dist: 0; thinkfunc: nil),
(aifunc: ai_stand; dist: 0; thinkfunc: nil),
(aifunc: ai_stand; dist: 0; thinkfunc: nil),
(aifunc: ai_stand; dist: 0; thinkfunc: nil),
(aifunc: ai_stand; dist: 0; thinkfunc: nil),
(aifunc: ai_stand; dist: 0; thinkfunc: nil),
(aifunc: ai_stand; dist: 0; thinkfunc: nil),
(aifunc: ai_stand; dist: 0; thinkfunc: nil),
(aifunc: ai_stand; dist: 0; thinkfunc: nil),
(aifunc: ai_stand; dist: 0; thinkfunc: nil),
(aifunc: ai_stand; dist: 0; thinkfunc: nil),
(aifunc: ai_stand; dist: 0; thinkfunc: nil),
(aifunc: ai_stand; dist: 0; thinkfunc: nil),
(aifunc: ai_stand; dist: 0; thinkfunc: nil),
(aifunc: ai_stand; dist: 0; thinkfunc: nil),
(aifunc: ai_stand; dist: 0; thinkfunc: nil),
(aifunc: ai_stand; dist: 0; thinkfunc: nil),
(aifunc: ai_stand; dist: 0; thinkfunc: nil),
(aifunc: ai_stand; dist: 0; thinkfunc: nil),
(aifunc: ai_stand; dist: 0; thinkfunc: nil),
(aifunc: ai_stand; dist: 0; thinkfunc: nil),
(aifunc: ai_stand; dist: 0; thinkfunc: nil),
(aifunc: ai_stand; dist: 0; thinkfunc: nil),
(aifunc: ai_stand; dist: 0; thinkfunc: nil),
(aifunc: ai_stand; dist: 0; thinkfunc: nil),
(aifunc: ai_stand; dist: 0; thinkfunc: nil),
(aifunc: ai_stand; dist: 0; thinkfunc: insane_checkdown));
insane_move_stand_insane : mmove_t = (firstframe: FRAME_stand65; lastframe:FRAME_stand94; frame:@insane_frames_stand_insane;
endfunc: insane_stand);
insane_frames_uptodown : array [0..39] of mframe_t = (
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: insane_moan),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 2.7; thinkfunc: nil),
(aifunc: ai_move; dist: 4.1; thinkfunc: nil),
(aifunc: ai_move; dist: 6; thinkfunc: nil),
(aifunc: ai_move; dist: 7.6; thinkfunc: nil),
(aifunc: ai_move; dist: 3.6; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: insane_fist),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: insane_fist),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil));
insane_move_uptodown : mmove_t = (firstframe: FRAME_stand1; lastframe:FRAME_stand40; frame:@insane_frames_uptodown;
endfunc: insane_onground);
insane_frames_downtoup : array [0..18] of mframe_t = (
(aifunc: ai_move; dist: -0.7; thinkfunc: nil), // 41
(aifunc: ai_move; dist: -1.2; thinkfunc: nil), // 42
(aifunc: ai_move; dist: -1.5; thinkfunc: nil), // 43
(aifunc: ai_move; dist: -4.5; thinkfunc: nil), // 44
(aifunc: ai_move; dist: -3.5; thinkfunc: nil), // 45
(aifunc: ai_move; dist: -0.2; thinkfunc: nil), // 46
(aifunc: ai_move; dist: 0; thinkfunc: nil), // 47
(aifunc: ai_move; dist: -1.3; thinkfunc: nil), //48
(aifunc: ai_move; dist: -3; thinkfunc: nil), // 49
(aifunc: ai_move; dist: -2; thinkfunc: nil), // 50
(aifunc: ai_move; dist: 0; thinkfunc: nil), // 51
(aifunc: ai_move; dist: 0; thinkfunc: nil), // 52
(aifunc: ai_move; dist: 0; thinkfunc: nil), // 53
(aifunc: ai_move; dist: -3.3; thinkfunc: nil), // 54
(aifunc: ai_move; dist: 1.6; thinkfunc: nil), // 55
(aifunc: ai_move; dist: -0.3; thinkfunc: nil), // 56
(aifunc: ai_move; dist: 0; thinkfunc: nil), //57
(aifunc: ai_move; dist: 0; thinkfunc: nil), //58
(aifunc: ai_move; dist: 0; thinkfunc: nil)); // 59
insane_move_downtoup : mmove_t = (firstframe: FRAME_stand41; lastframe:FRAME_stand59; frame:@insane_frames_downtoup;
endfunc: insane_stand);
insane_frames_jumpdown : array [0..4] of mframe_t = (
(aifunc: ai_move; dist: 0.2; thinkfunc: nil),
(aifunc: ai_move; dist: 11.5; thinkfunc: nil),
(aifunc: ai_move; dist: 5.1; thinkfunc: nil),
(aifunc: ai_move; dist: 7.1; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil));
insane_move_jumpdown: mmove_t = (firstframe: FRAME_stand96; lastframe:FRAME_stand100; frame:@insane_frames_jumpdown;
endfunc: insane_onground);
insane_frames_down : array [0..60] of mframe_t = (
(aifunc: ai_move; dist: 0; thinkfunc: nil), // 100
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil), // 110
(aifunc: ai_move; dist: -1.7; thinkfunc: nil),
(aifunc: ai_move; dist: -1.6; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: insane_fist),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil), // 120
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil), // 130
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: insane_moan),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil), // 140
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil), // 150
(aifunc: ai_move; dist: 0.5; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: -0.2; thinkfunc: insane_scream),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0.2; thinkfunc: nil),
(aifunc: ai_move; dist: 0.4; thinkfunc: nil),
(aifunc: ai_move; dist: 0.6; thinkfunc: nil),
(aifunc: ai_move; dist: 0.8; thinkfunc: nil),
(aifunc: ai_move; dist: 0.7; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: insane_checkup)); // 160
insane_move_down: mmove_t = (firstframe: FRAME_stand100; lastframe:FRAME_stand160; frame:@insane_frames_down;
endfunc: insane_onground);
insane_frames_walk_normal: array [0..12] of mframe_t = (
(aifunc: ai_walk; dist: 0; thinkfunc: insane_scream),
(aifunc: ai_walk; dist: 2.5; thinkfunc: nil),
(aifunc: ai_walk; dist: 3.5; thinkfunc: nil),
(aifunc: ai_walk; dist: 1.7; thinkfunc: nil),
(aifunc: ai_walk; dist: 2.3; thinkfunc: nil),
(aifunc: ai_walk; dist: 2.4; thinkfunc: nil),
(aifunc: ai_walk; dist: 2.2; thinkfunc: nil),
(aifunc: ai_walk; dist: 4.2; thinkfunc: nil),
(aifunc: ai_walk; dist: 5.6; thinkfunc: nil),
(aifunc: ai_walk; dist: 3.3; thinkfunc: nil),
(aifunc: ai_walk; dist: 2.4; thinkfunc: nil),
(aifunc: ai_walk; dist: 0.9; thinkfunc: nil),
(aifunc: ai_walk; dist: 0; thinkfunc: nil));
insane_move_walk_normal: mmove_t = (firstframe: FRAME_walk27; lastframe:FRAME_walk39; frame:@insane_frames_walk_normal;
endfunc: insane_walk);
insane_move_run_normal: mmove_t = (firstframe: FRAME_walk27; lastframe:FRAME_walk39; frame:@insane_frames_walk_normal;
endfunc: insane_run);
insane_frames_walk_insane: array [0..25] of mframe_t = (
(aifunc: ai_walk; dist: 0; thinkfunc: insane_scream), // walk 1
(aifunc: ai_walk; dist: 3.4; thinkfunc: nil), // walk 2
(aifunc: ai_walk; dist: 3.6; thinkfunc: nil), // walk 3
(aifunc: ai_walk; dist: 2.9; thinkfunc: nil), // walk 4
(aifunc: ai_walk; dist: 2.2; thinkfunc: nil), // walk 5
(aifunc: ai_walk; dist: 2.6; thinkfunc: nil), // walk 6
(aifunc: ai_walk; dist: 0; thinkfunc: nil), // walk 7
(aifunc: ai_walk; dist: 0.7; thinkfunc: nil), // walk 8
(aifunc: ai_walk; dist: 4.8; thinkfunc: nil), // walk 9
(aifunc: ai_walk; dist: 5.3; thinkfunc: nil), // walk 10
(aifunc: ai_walk; dist: 1.1; thinkfunc: nil), // walk 11
(aifunc: ai_walk; dist: 2; thinkfunc: nil), // walk 12
(aifunc: ai_walk; dist: 0.5; thinkfunc: nil), // walk 13
(aifunc: ai_walk; dist: 0; thinkfunc: nil), // walk 14
(aifunc: ai_walk; dist: 0; thinkfunc: nil), // walk 15
(aifunc: ai_walk; dist: 4.9; thinkfunc: nil), // walk 16
(aifunc: ai_walk; dist: 6.7; thinkfunc: nil), // walk 17
(aifunc: ai_walk; dist: 3.8; thinkfunc: nil), // walk 18
(aifunc: ai_walk; dist: 2; thinkfunc: nil), // walk 19
(aifunc: ai_walk; dist: 0.2; thinkfunc: nil), // walk 20
(aifunc: ai_walk; dist: 0; thinkfunc: nil), // walk 21
(aifunc: ai_walk; dist: 3.4; thinkfunc: nil), // walk 22
(aifunc: ai_walk; dist: 6.4; thinkfunc: nil), // walk 23
(aifunc: ai_walk; dist: 5; thinkfunc: nil), // walk 24
(aifunc: ai_walk; dist: 1.8; thinkfunc: nil), // walk 25
(aifunc: ai_walk; dist: 0; thinkfunc: nil)); // walk 26
insane_move_walk_insane: mmove_t = (firstframe: FRAME_walk27; lastframe:FRAME_walk39; frame:@insane_frames_walk_insane;
endfunc: insane_walk);
insane_move_run_insane: mmove_t = (firstframe: FRAME_walk27; lastframe:FRAME_walk39; frame:@insane_frames_walk_insane;
endfunc: insane_run);
insane_frames_stand_pain: array [0..10] of mframe_t = (
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil));
insane_move_stand_pain: mmove_t = (firstframe: FRAME_st_pain2; lastframe:FRAME_st_pain12; frame:@insane_frames_stand_pain;
endfunc: insane_run);
insane_frames_stand_death: array [0..15] of mframe_t = (
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil),
(aifunc: ai_move; dist: 0; thinkfunc: nil));
insane_move_stand_death: mmove_t = (firstframe: FRAME_st_death2; lastframe:FRAME_st_death18; frame:@insane_frames_stand_death;
endfunc: insane_dead);
insane_frames_crawl: array [0..8] of mframe_t = (
(aifunc: ai_walk; dist: 0; thinkfunc: insane_scream),
(aifunc: ai_walk; dist: 1.5; thinkfunc: nil),
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -