Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Experimental canmoe functions for 2.8.x
- // The maths here depend on if the Ghost_Step is in full pixels per frame
- // or if it isPixels per frame * 100.//e.g., IDR if it is 100 for one pixel/frame using Ghost_Step, or 1.0
- // Basic model for imprecision, assuming that step is an integer (e.g. 250 == 2.5 pixels per frame), as in the Enemy Editor
- // If step is a float as in the engine (type 'fix' there), then we need to remove the *0.01
- void Ghost_CanMoveAtAngle(float angle, float step, float imprecision, bool onlycheckdest)
- {
- if(onlycheckdest)
- {
- if(Ghost_CanMovePixel(VectorX(q, angle), VectorY(q, angle), Ghost_Z>0))
- {
- //can_move_imprecise
- return true;
- }
- if(Ghost_CanMovePixel(VectorX(q+imprecision, angle), VectorY(q+imprecision, angle), Ghost_Z>0))
- {
- return true;
- }
- return false;
- }
- else
- {
- //bool can_move_imprecise;
- for ( int q = Max((step*0.01), 1); q > 0; --q )
- {
- if(Ghost_CanMovePixel(VectorX(q, angle), VectorY(q, angle), Ghost_Z>0))
- {
- //can_move_imprecise
- return true;
- }
- if(Ghost_CanMovePixel(VectorX(q+imprecision, angle), VectorY(q+imprecision, angle), Ghost_Z>0))
- {
- return true;
- }
- }
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement