TURRET.CPP
上传用户:sycq158
上传日期:2008-10-22
资源大小:15361k
文件大小:1k
源码类别:

游戏

开发平台:

Visual C++

  1. #include "ray.h"
  2. #include "globals.h"
  3. #include "rayspr.h"
  4. #include "sprfunc.h"
  5. #include "sfvars.h"
  6. #include "turret.h"
  7. #include "sprtypes.h"
  8. #define FIRE_TIME 30
  9. #define ANGLE_INC 120
  10. void Turret_Create(pobject cur_object, long offset);
  11. void Turret_Update(pobject cur_object, long update_num);
  12. void Turret_Update_Z(pobject cur_object, psector new_sec);
  13. void Init_Turrets(func_index index) {
  14.    update_funcs[index]=Turret_Update;
  15.    update_z_funcs[index]=Turret_Update_Z;
  16.    load_extra_funcs[index]=Turret_Create;
  17. }
  18. void Turret_Create(pobject cur_object, long offset) {
  19.    PSHORT cur_time=(PSHORT)NewPtr(sizeof(short));
  20.    *(cur_time)=0;
  21.    cur_object->extra_data=(pdata)cur_time;
  22.    }
  23. void Turret_Update_Z(pobject cur_object, psector new_sec) {
  24.    }
  25. void Turret_Update(pobject cur_object, long update_num) {
  26.   PSHORT cur_time=(PSHORT)cur_object->extra_data;
  27.                                
  28.   if (++(*cur_time)==FIRE_TIME) {
  29.      cur_object->angle=Get_Angle_Sum(cur_object->angle, ANGLE_INC); 
  30.      Create_Object(cur_object->x, cur_object->y, cur_object->z+cur_object->type->eye_height,
  31.         cur_object->angle, BULLET_TYPE, cur_object, cur_object->team);
  32.      *(cur_time)=0;
  33.         if (++cur_object->cur_frame==
  34.             wall[cur_object->type->frames[0]].num_image)
  35.            cur_object->cur_frame=0;
  36.   }
  37. }