⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 m_insane.pas

📁 delphi编的不错的贪吃蛇
💻 PAS
📖 第 1 页 / 共 3 页
字号:

{/*
==============================================================================

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 + -