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

📄 g_local_add.pas

📁 delphi编的不错的贪吃蛇
💻 PAS
📖 第 1 页 / 共 2 页
字号:
    flood_locktill: single;  // locked from talking
    flood_when: array[0..9] of single;	// when messages were said
    flood_whenhead: integer;  // head pointer for when said

    respawn_time: single;  // can respawn when time > this


{$ifdef CTF}
//ZOID
    ctf_grapple: pointer; // entity of grapple
    ctf_grapplestate: integer; // true if pulling
    ctf_grapplereleasetime: Single; // time of grapple release
    ctf_regentime: Single;          // regen tech
    ctf_techsndtime: Single;
    ctf_lasttechmsg: Single;
{$endif}
    chase_target: edict_p;  // player we are chasing
    update_chase: qboolean; // need to update chase info?
{$ifdef CTF}
    menutime: single; // time to update menu
    menudirty: qboolean;
//ZOID
{$endif}
  end;



  Proc_Pedictt = procedure(x: edict_p); cdecl;
  Proc_Pedictt_single = procedure(self: edict_p; dist: single); cdecl;
  Boolfunc_Pedictt = function(self: edict_p): qboolean; cdecl;
  Proc_2Pedictt_single = procedure(self, other: edict_p; eta: single); cdecl;
  Proc_2Pedictt = procedure(self, other: edict_p); cdecl;
  Proc_2edictt_cplanet_csurfacet = Procedure(self, other: edict_p;
                                                  plane: cplane_p; surf: csurface_p); cdecl;
  Proc_3edictt = Procedure (self, other, activator: edict_p); cdecl;
  Proc_2edictt_single_int = Procedure(self, other: edict_p;
                                          kick: single; damage: integer); cdecl;
  Proc_3edictt_int_vec3t = Procedure(self, inflictor, attacker: edict_p;
                                          damage: integer; const point: vec3_t); cdecl;


  moveinfo_p = ^moveinfo_t;
  moveinfo_t = record
    // fixed data
    start_origin,
    start_angles,
    end_origin,
    end_angles: vec3_t;

    sound_start,
    sound_middle,
    sound_end: integer;

    accel,
    speed,
    decel,
    distance: Single;

    wait: Single;

    // state data
    state: integer;
    dir: vec3_t;
    current_speed,
    move_speed,
    next_speed,
    remaining_distance,
    decel_distance: Single;
    endfunc: Proc_Pedictt;
  end;

  mframe_p = ^mframe_t;
  mframe_t = record
    aifunc: Proc_Pedictt_single;
    dist: Single;
    thinkfunc: Proc_Pedictt;
  end;
  mframe_at = array[0..MaxInt div SizeOf(mframe_t) - 1] of mframe_t;
  mframe_a = ^mframe_at;

  mmove_p = ^mmove_t;
  mmove_t = record
    firstframe,
    lastframe: integer;
    frame: mframe_p;
    endfunc: Proc_Pedictt;
  end;

  monsterinfo_p = ^monsterinfo_t;
  monsterinfo_t = record
    currentmove: mmove_p;
    aiflags,
    nextframe: integer;
    scale: Single;

    stand,
    idle,
    search,
    walk,
    run: Proc_Pedictt;
    dodge: Proc_2Pedictt_single;
    attack: Proc_Pedictt;
    melee: Proc_Pedictt;
    sight: Proc_2Pedictt;
    checkattack: Boolfunc_Pedictt;

    pausetime,
    attack_finished: Single; // CAK - FIXED!!! WAS IN WRONG ORDER!!!!! NAUGHTY!!!

    saved_goal: vec3_t;      // CAK - THIS WHOLE STRUCT WAS WRONG!!!!!!
    search_time,
    trail_time: Single;
    last_sighting: vec3_t;
    attack_state,
    lefty: integer;
    idle_time: Single;
    linkcount: integer;

    power_armor_type,
    power_armor_power: integer;
  end;

  edict_t = record
    s: entity_state_t;
    client: gclient_p;	// NULL if not a player
                        // the server expects the first part
                        // of gclient_s to be a player_state_t
                        // but the rest of it is opaque

    inuse: qboolean;
    linkcount: integer;

    // FIXME: move these fields to a server private sv_entity_t
    area: link_t; // linked to a division node or leaf

    num_clusters: integer;		// if -1, use headnode instead
    clusternums: array[0..MAX_ENT_CLUSTERS - 1] of integer;
    headnode: integer;			// unused if num_clusters != -1
    areanum, areanum2: integer;

    //================================

    svflags :integer;
    mins, maxs: vec3_t;
    absmin, absmax, size: vec3_t;
    solid: solid_t;
    clipmask: integer;
    owner: edict_p;


    // DO NOT MODIFY ANYTHING ABOVE THIS, THE SERVER
    // EXPECTS THE FIELDS IN THAT ORDER!

    //================================
    movetype: movetype_t; // CAK - was Integer
    flags: integer;

    model: PChar;
    freetime: single; // sv.time when the object was freed

    //
    // only used locally in game, not by server
    //
    _message,
    classname: Pchar;
    spawnflags: integer;

    timestamp: Single;

    angle: Single; // set in qe3, -1 = up, -2 = down
    target,
    targetname,
    killtarget,
    team,
    pathtarget,
    deathtarget,
    combattarget: PChar;
    target_ent: edict_p;

    speed, accel, decel: Single;
    movedir: vec3_t;
    pos1, pos2: vec3_t;

    velocity: vec3_t;
    avelocity: vec3_t;
    mass: integer;
    air_finished,
    gravity: Single; // per entity gravity multiplier (1.0 is normal)
                     // use for lowgrav artifact, flares

    goalentity: edict_p;
    movetarget: edict_p;
    yaw_speed,
    ideal_yaw: Single;

    nextthink: single;
    prethink: Proc_Pedictt;
    think: Proc_Pedictt;
    blocked: Proc_2Pedictt;	//move to moveinfo?
    touch: Proc_2edictt_cplanet_csurfacet;
    use: Proc_3edictt;
    pain: Proc_2edictt_single_int;
    die: Proc_3edictt_int_vec3t;

    touch_debounce_time, // are all these legit?  do we need more/less of them?
    pain_debounce_time,
    damage_debounce_time,
    fly_sound_debounce_time, //move to clientinfo
    last_move_time: single;

    health,
    max_health,
    gib_health,
    deadflag: integer;
    show_hostile: qboolean;

    powerarmor_time: Single;

    map: PChar;	// target_changelevel

    viewheight: Integer; // height above origin where eyesight is determined
    takedamage: damage_t; // CAK - was Integer
    dmg,
    radius_dmg: integer;
    dmg_radius: Single; // CAK - THIS WAS WRONG!!!!!
    sounds,  //make this a spawntemp var
    count: integer;

    chain,
    enemy,
    oldenemy,
    activator,
    groundentity: edict_p;
    groundentity_linkcount: integer;
    teamchain,
    teammaster: edict_p;

    mynoise,	     // can go in client only
    mynoise2: edict_p;

    noise_index,
    noise_index2: integer;
    volume,
    attenuation: Single;

    // timing variables
    wait,
    delay,  // before firing targets
    random: Single;

    teleport_time: single;

    watertype,
    waterlevel: integer;

    move_origin: vec3_t;
    move_angles: vec3_t;

    // move this to clientinfo?
    light_level: integer;

    style: integer; // also used as areaportal number

    item: gitem_p; // for bonus items

    // common data blocks
    moveinfo: moveinfo_t;
    monsterinfo: monsterinfo_t;
  end;


implementation

end.
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -