Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Andi - Copy a shot as best as I could manage
- //Things without getters need to be noted in the shot's dictionary to be used
- function CopyShot(shot){
- let x = ObjMove_GetX(shot);
- let y = ObjMove_GetY(shot);
- let spd = ObjMove_GetSpeed(shot);
- let ang = ObjMove_GetAngle(shot);
- let type = ObjShot_GetImageID(shot);
- let acc = Obj_GetValueD(shot,"Acceleration",0);
- let angv = Obj_GetValueD(shot,"AngularVelocity",0);
- let mspd = Obj_GetValueD(shot,"MaxSpeed",9999);
- let spellresist = ObjShot_IsSpellResist(shot);
- let intersect = Obj_GetValueD(shot,"IsIntersectionEnable",true);
- let scalexyz = [ObjRender_GetScaleX(shot),ObjRender_GetScaleY(shot),ObjRender_GetScaleZ(shot)];
- let blendtype = ObjRender_GetBlendType(shot);
- let color = Obj_GetValueD(shot,"Color",[255,255,255]);
- let alpha = Obj_GetValueD(shot,"Alpha",255);
- let length=NULL; let width=NULL; let dur=NULL; let del=0;
- let cpy=NULL;
- if(Obj_GetType(shot)==OBJ_SHOT){
- cpy = CreateShotA1(x,y,spd,ang,type,0);
- }
- else{
- length = ObjLaser_GetLength(shot);
- width = Obj_GetValueD(shot,"Width",15);
- dur = Obj_GetValueD(shot,"Duration",30);
- del = Obj_GetValueD(shot,"Delay",tern(Obj_GetType(shot)==OBJ_STRAIGHT_LASER, 15, 0));
- if(Obj_GetType(shot)==OBJ_LOOSE_LASER){
- cpy = CreateLooseLaserA1(x,y,spd,ang, length, width, type, del);
- }
- if(Obj_GetType(shot)==OBJ_STRAIGHT_LASER){
- cpy = CreateStraightLaserA1(x,y,ang,length,width, dur, type, del);
- }
- if(Obj_GetType(shot)==OBJ_CURVE_LASER){
- cpy = CreateCurveLaserA1(x,y,spd,ang, length, width, type, del);
- }
- }
- ObjMove_SetAcceleration(cpy,acc);
- ObjMove_SetAngularVelocity(cpy,angv);
- ObjMove_SetMaxSpeed(cpy,mspd);
- ObjRender_SetColor(cpy,color[0],color[1],color[2]);
- ObjRender_SetAlpha(cpy,alpha);
- ObjRender_SetBlendType(cpy, blendtype);
- ObjRender_SetScaleXYZ(cpy, scalexyz[0],scalexyz[1],scalexyz[2]);
- ObjShot_SetSpellResist(cpy,spellresist);
- ObjShot_SetIntersectionEnable(cpy,intersect);
- Obj_SetRenderPriority(cpy,Obj_GetRenderPriority(shot));
- setvals(cpy, ["Acceleration","AngularVelocity","MaxSpeed","Alpha"] //"IsIntersectionEnable","Color","Alpha"]
- ,[acc ,angv ,mspd ,alpha ]); //,intersect ,color ,alpha ]);
- setval(cpy,"Color",color); setval(cpy,"IsIntersectionEnable",intersect);
- return cpy;
- }
- //Functions to do stuff with object dictionaries with less typing
- function getval(obj,k){return Obj_GetValue(obj,k);}
- function getvald(obj,k,d){return Obj_GetValueD(obj,k,d);}
- function isval(obj,k){return Obj_IsValueExists(obj,k);}
- function setval(obj,k,v){Obj_SetValue(obj,k,v);}
- function setvalsf(obj,k,v){if(!Obj_IsDeleted(obj)){setval(obj,k,v);}}
- function remval(obj,k){Obj_DeleteValue(obj,k);}
- function setvals(obj,keys,vals){
- while(length(keys)>length(vals)){vals=vals~[NULL];}
- ascent(i in 0..length(keys)){
- if(vals[i]!=NO_CHANGE || !isval(obj,keys[i])){
- setval(obj,keys[i],vals[i]);
- }
- }
- }
- //Fuck it have some more laziness functions
- function getx(obj){return ObjMove_GetX(obj);}
- function gety(obj){return ObjMove_GetY(obj);}
- function geta(obj){return ObjMove_GetAngle(obj);}
- function getsp(obj){return ObjMove_GetSpeed(obj);}
- function getrx(obj){return ObjRender_GetX(obj);}
- function getry(obj){return ObjRender_GetY(obj);}
- function getra(obj){return ObjRender_GetAngleZ(obj);}
- function setx(obj,x){ObjMove_SetX(obj,x);}
- function sety(obj,y){ObjMove_SetY(obj,y);}
- function seta(obj,a){ObjMove_SetAngle(obj,a);}
- function setsp(obj,s){ObjMove_SetSpeed(obj,s);}
- function setpos(obj,x,y){ObjMove_SetPosition(obj,x,y);}
- function setrpos(obj,x,y,z){ObjRender_SetPosition(obj,x,y,z);}
- //check whether an object is safe to dereference
- function isnull(obj){
- //can't check if it hasn't been set, initialize to NULL if there's a chance it'll come up
- if(!obj){return true;} //if it's null
- if(Obj_IsDeleted(obj)){return true;} //if it's been deleted
- return false;
- }
Advertisement
Add Comment
Please, Sign In to add comment