Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \\
- // Coolgamers Z3 Scrolling, Version 2 Update/Itteration 4 Module 4. \\
- // Module 4: \\
- // Custom Sprites \\
- // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \\
- // ~ Misc Constants ~
- const int SCRL_ITM_DEADSTATE_DEAD = 0; // Removes the Item.
- const int SCRL_ITM_DEADSTATE_ALIVE = -1; // The Item isn't removed over time.
- const int SCRL_ITM_IS_NOT_SPRITE = 0;
- const int SCRL_ITM_IS_SPRITE = 1;
- const int SPRITE_ITEM_ID = 143;
- // ~ ->Misc[] indices ~
- const int MISC_ITM_SPRITESTATE = 0; // Marks if the Item is a sprite or not.
- const int MISC_ITM_DEADSTATE = 1;
- const int MISC_ITM_SPAWN_X = 2; // The X position that the item was spawned at.
- const int MISC_ITM_SPAWN_Y = 3; // The Y position that the item was spawned at.
- // ~ Functions ~
- item CreateCustomSprite(int miscSpriteID, int itmDeadState, int x, int y)
- {
- lweapon tempSprite = CreateLWeaponAt(0, 120, 80);
- tempSprite->UseSprite(miscSpriteID);
- item Sprite = CreateItemAt(SPRITE_ITEM_ID, 120, 80);
- Sprite->HitXOffset = (x - 120);
- Sprite->HitYOffset = (y - 80);
- Sprite->DrawXOffset = Sprite->HitXOffset;
- Sprite->DrawYOffset = Sprite->HitYOffset;
- Sprite->OriginalTile = tempSprite->OriginalTile;
- Sprite->Tile = tempSprite->OriginalTile;
- Sprite->CSet = tempSprite->CSet;
- Sprite->FlashCSet = tempSprite->FlashCSet;
- Sprite->NumFrames = tempSprite->NumFrames;
- Sprite->ASpeed = tempSprite->ASpeed;
- Sprite->Flash = tempSprite->Flash;
- Sprite->Flip = tempSprite->Flip;
- //SetFlag(Sprite->Pickup, IP_DUMMY, true);
- Sprite->Misc[MISC_ITM_SPRITESTATE] = SCRL_ITM_IS_SPRITE;
- Sprite->Misc[MISC_ITM_DEADSTATE] = itmDeadState;
- Sprite->Misc[MISC_ITM_SPAWN_X] = x;
- Sprite->Misc[MISC_ITM_SPAWN_Y] = y;
- Sprite->HitXOffset = NODETECT_HITXOFFSET;
- Remove(tempSprite);
- return Sprite;
- }
- void HandleCustomSprites()
- {
- for(int i = 1; i <= Screen->NumItems(); i += 1)
- {
- item itm = Screen->LoadItem(i);
- if(itm->Misc[MISC_ITM_SPRITESTATE] == SCRL_ITM_IS_SPRITE)
- {
- if(itm->Misc[MISC_ITM_DEADSTATE] == SCRL_ITM_DEADSTATE_DEAD)
- {
- Remove(itm);
- }
- else if(itm->Misc[MISC_ITM_DEADSTATE] > SCRL_ITM_DEADSTATE_DEAD)
- {
- itm->Misc[MISC_ITM_DEADSTATE] -= 1;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement