// Copyright © 2017 Project Golan, all rights reserved. // See COPYING for more information. #define _GNU_SOURCE // Required for sincos(3). See feature_test_macros(7) #include "g_missile.h" #include "g_object.h" #include "m_math.h" #include // Extern Functions ----------------------------------------------------------| // // G_Missile_Fire // void G_Missile_Fire(enum G_msltype type, unsigned owner, fixed x, fixed y, fixed z, ulfra yaw) { G_entity ot = {owner}; G_missile th = {DGE_MissileEntity_Create(0)}; th.subtype = subtype_missile; th.x = ot.x + x; th.y = ot.y + y; th.z = ot.z + z; th.yaw = yaw; th.health = 1; th.damage = 1; th.owner = owner; th.sz = 4; float s, c; sincosf(M_angle(yaw), &s, &c); switch(type) { case missile_p_basicL: th.sprite = DGE_Texture_Get(s"ent/shotl"); goto player; case missile_p_basicR: th.sprite = DGE_Texture_Get(s"ent/shotr"); goto player; player: th.ca = 0.7ulr; th.rsx = 6; th.rsy = 16; th.sx = 6; th.sy = 18; th.vx = c * 14; th.vy = s * 14; break; } } // EOF