Advertisement
TheBlueTophat

Scrolling Code Module 4

May 20th, 2016
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.37 KB | None | 0 0
  1. // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \\
  2. // Coolgamers Z3 Scrolling, Version 2 Update/Itteration 4 Module 4. \\
  3. // Module 4:                                                        \\
  4. // Custom Sprites                                                   \\
  5. // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \\
  6.  
  7. // ~ Misc Constants ~
  8. const int SCRL_ITM_DEADSTATE_DEAD = 0; // Removes the Item.
  9. const int SCRL_ITM_DEADSTATE_ALIVE = -1; // The Item isn't removed over time.
  10.  
  11. const int SCRL_ITM_IS_NOT_SPRITE = 0;
  12. const int SCRL_ITM_IS_SPRITE = 1;
  13.  
  14. const int SPRITE_ITEM_ID = 143;
  15.  
  16. // ~ ->Misc[] indices ~
  17. const int MISC_ITM_SPRITESTATE = 0; // Marks if the Item is a sprite or not.
  18. const int MISC_ITM_DEADSTATE = 1;
  19. const int MISC_ITM_SPAWN_X = 2; // The X position that the item was spawned at.
  20. const int MISC_ITM_SPAWN_Y = 3; // The Y position that the item was spawned at.
  21.  
  22. // ~ Functions ~
  23.  
  24.  
  25. item CreateCustomSprite(int miscSpriteID, int itmDeadState, int x, int y)
  26. {
  27.     lweapon tempSprite = CreateLWeaponAt(0, 120, 80);
  28.     tempSprite->UseSprite(miscSpriteID);
  29.    
  30.     item Sprite = CreateItemAt(SPRITE_ITEM_ID, 120, 80);
  31.    
  32.     Sprite->HitXOffset = (x - 120);
  33.     Sprite->HitYOffset = (y - 80);
  34.     Sprite->DrawXOffset = Sprite->HitXOffset;
  35.     Sprite->DrawYOffset = Sprite->HitYOffset;
  36.    
  37.     Sprite->OriginalTile = tempSprite->OriginalTile;
  38.     Sprite->Tile = tempSprite->OriginalTile;
  39.     Sprite->CSet = tempSprite->CSet;
  40.     Sprite->FlashCSet = tempSprite->FlashCSet;
  41.     Sprite->NumFrames = tempSprite->NumFrames;
  42.     Sprite->ASpeed = tempSprite->ASpeed;
  43.     Sprite->Flash = tempSprite->Flash;
  44.     Sprite->Flip = tempSprite->Flip;
  45.     //SetFlag(Sprite->Pickup, IP_DUMMY, true);
  46.    
  47.     Sprite->Misc[MISC_ITM_SPRITESTATE] = SCRL_ITM_IS_SPRITE;
  48.     Sprite->Misc[MISC_ITM_DEADSTATE] = itmDeadState;
  49.    
  50.     Sprite->Misc[MISC_ITM_SPAWN_X] = x;
  51.     Sprite->Misc[MISC_ITM_SPAWN_Y] = y;
  52.    
  53.     Sprite->HitXOffset = NODETECT_HITXOFFSET;
  54.    
  55.     Remove(tempSprite);
  56.    
  57.     return Sprite;
  58. }
  59.  
  60. void HandleCustomSprites()
  61. {
  62.     for(int i = 1; i <= Screen->NumItems(); i += 1)
  63.     {
  64.         item itm = Screen->LoadItem(i);
  65.        
  66.         if(itm->Misc[MISC_ITM_SPRITESTATE] == SCRL_ITM_IS_SPRITE)
  67.         {
  68.             if(itm->Misc[MISC_ITM_DEADSTATE] == SCRL_ITM_DEADSTATE_DEAD)
  69.             {
  70.                 Remove(itm);
  71.             }
  72.             else if(itm->Misc[MISC_ITM_DEADSTATE] > SCRL_ITM_DEADSTATE_DEAD)
  73.             {
  74.                 itm->Misc[MISC_ITM_DEADSTATE] -= 1;
  75.             }
  76.         }
  77.     }
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement