home *** CD-ROM | disk | FTP | other *** search
- /** StefSpritez.h by Stefan Sinclair Copyright ©1995 All Rights Reserved **/
-
- /*** #includes ***/
- #ifndef _STEFSPRITES_
- #define _STEFSPRITES_
-
- #ifndef __SWCOMMON__
- #include "SWCommonHeaders.h"
- #endif
-
- #ifndef __SOUND__
- #include <Sound.h>
- #endif
-
- #ifndef __SPRITECOMPILER__
- #include "SpriteCompiler.h"
- #endif
-
- #ifndef __SPRITEWORLD__
- #include "SpriteWorld.h"
- #endif
-
- #ifndef __SPRITELAYER__
- #include "SpriteLayer.h"
- #endif
-
- #ifndef __SPRITE__
- #include "Sprite.h"
- #endif
-
- #ifndef __FRAME__
- #include "Frame.h"
- #endif
-
- #ifndef __SPRITEWORLDUTILS__
- #include "SpriteWorldUtils.h"
- #endif
-
- #ifndef _GAMEUTILS_
- #include "GameUtils.h"
- #endif
-
- #ifndef _DEBUGUTILS_
- #include "DebugUtils.h"
- #endif
-
- #ifndef _BLITPIXIE_
- #include "BlitPixie.h"
- #endif
-
- #include "SpriteBackground.h" // mine
- #include "SpriteForeground.h"
-
- // for compatibility w/ 68K & PPC compilers
- // NewAEEventHandlerProc is existant only in PPC C code, so it is my 'check'
- #ifdef NewAEEventHandlerProc
- #define StefGetKeys GetKeys((unsigned long*)km)
- #else
- #define StefGetKeys GetKeys((long*)km)
- #endif
-
- /*** #defines ***/
- // keyboard scan codes
- #define keyTilde 0x32
- #define key1 0x12
- #define key2 0x13
- #define key3 0x14
- #define key4 0x15
- #define key5 0x17
- #define key6 0x16
- #define key7 0x1A
- #define key8 0x1C
- #define key9 0x19
- #define key0 0x1D
- #define keyMinus 0x1B
- #define keyEqual 0x18
- #define keyDelete 0x33
- #define keyTab 0x30
- #define keyQ 0x0C
- #define keyW 0x0D
- #define keyE 0x0E
- #define keyR 0x0F
- #define keyT 0x11
- #define keyY 0x10
- #define keyU 0x20
- #define keyI 0x22
- #define keyO 0x1F
- #define keyP 0x23
- #define keyLBracket 0x21
- #define keyRBracket 0x1E
- #define keyBackSlash 0x2A
- #define keyCapsLock 0x39
- #define keyA 0x00
- #define keyS 0x01
- #define keyD 0x02
- #define keyF 0x03
- #define keyG 0x05
- #define keyH 0x04
- #define keyJ 0x26
- #define keyK 0x28
- #define keyL 0x25
- #define keySemiColon 0x29
- #define keyQuote 0x27
- #define keyReturn 0x24
- #define keyShift 0x38
- #define keyZ 0x06
- #define keyX 0x07
- #define keyC 0x08
- #define keyV 0x09
- #define keyB 0x0B
- #define keyN 0x2D
- #define keyM 0x2E
- #define keyComma 0x2B
- #define keyPeriod 0x2F
- #define keySlash 0x2C
- #define keyControl 0x3B
- #define keyOption 0x3A
- #define keyCommand 0x37
- #define keySpace 0x31
- #define keyUpArrow 0x7E
- #define keyDownArrow 0x7D
- #define keyLArrow 0x7B
- #define keyRArrow 0x7C
- #define keyNumClear 0x47
- #define keyNumEqual 0x51
- #define keyNumSlash 0x4B
- #define keyNumAsterisk 0x43
- #define keyNumMinus 0x4E
- #define keyNumPlus 0x45
- #define keyNumEnter 0x4C
- #define keyNumPeriod 0x41
- #define keyNum0 0x52
- #define keyNum1 0x53
- #define keyNum2 0x54
- #define keyNum3 0x55
- #define keyNum4 0x56
- #define keyNum5 0x57
- #define keyNum6 0x58
- #define keyNum7 0x59
- #define keyNum8 0x5B
- #define keyNum9 0x5C
-
- // REMEMBER! I use a type 'double' instead of 'long' in SWLib so I have 8 bytes of private sprite storage
- // Byte #0
- #define kSpriteBitData 0 // the following are accessed as bit-values only to save space!
- #define kPreviousSide 0 // 0=left side; 1=right side
- #define kCurrentSide 1 // 0=left side; 1=right side
- #define kLeftSide FALSE
- #define kRightSide TRUE
- #define kLifeStatus 2 // 0=dead; 1=alive
- // That leaves 5 empty bits in Byte #0
- // Byte #1
- #define kSpriteIDNum 1
- // Byte #2
- #define kPreviousAction 2
- // Byte #3
- #define kCurrentAction 3
- // Byte #4
- #define kHangTime 4
- // Byte #5
- #define kSpriteLife 5
- // Byte #6
- #define kCurrentFrame 6
- // Byte #7 - Last one
- #define kEmptyByte 7
-
- // konstants
- #define kNumberOfSprites 7
- #define kPlayer1Sprite 0
- #define kPlayer2Sprite 1
- #define kArena 2
- #define kPlayer1ProjectileSprite 2
- #define kPlayer2ProjectileSprite 3
- #define kBackgroundSprite 4
- #define kForegroundSprite 5
- #define kGuestSprite 6
- #define kComputer1Sprite 10
- #define kComputer2Sprite 11
- #define kSpriteMaxLife 125
- #define kSpriteMinLife 5
- #define kPunchDamage 2
- #define kJumpPuchDamage 1
- #define kKickDamage 2
- #define kJumpKickDamage 1
- #define kJumpPunchDamage 1
- #define kJumpAttackDamage 1
- #define kProjectileDamage 1
- #define kUppercutDamage 3
- #define kWhipLashVelocity 2
- #define kSpriteHealingTime 6
- #define kMaxSpeed 6
- #define kJumpSpeed -36
- #define kProjectileSpeed 12
- #define kJumpAttackVertSpeed -20
- #define kJumpAttackHorizSpeed 20
- #define kGroundLevel gSpriteHeight
-
- // actions
- #define aIdle 0
- #define aJump 1
- #define aRun 2
- #define aBlock 3
- #define aPunch 4
- #define aKick 5
- #define aJumpAttack 6
- #define aJumpPunch 7
- #define aJumpKick 8
- #define aGotHit 9
- #define aDuck 10
- #define aUppercut 11
- #define aTaunt 12
- #define aShoot 13
- #define aDying 14
- #define aRideChair 15
- #define aPushChair 16
- #define aProjectileIdle 17
- #define aPostAttack 25
- #define aProjectileShoot 26
- #define aPostJumpAttack 30
- #define aDoNothing 31
-
- // Rects
- #define kLifeRectTop 24
- #define kLifeRectBottom (kLifeRectTop+16)
- #define kP1LifeRectLeft 10
- #define kP1LifeRectRight (kP1LifeRectLeft+kSpriteMaxLife-kSpriteMinLife)
- #define kP2LifeRectLeft (640-kSpriteMaxLife-10)
- #define kP2LifeRectRight (kP2LifeRectLeft+kSpriteMaxLife-kSpriteMinLife)
-
- // ppats
- #define kLifePixPatID 129
-
- // PICTs
- #define kCreditsPICTResID 200
- #define kInstructionsPICTResID 201
- #define kHintsPICTResID 202
- #define kMorePICTResID 203
-
- // sounds
- #define kNumSpriteSounds 7
- #define kFirstSoundResID 128
- #define sGotHit (128-kFirstSoundResID)
- #define sJump (129-kFirstSoundResID)
- #define sJumpAttack (130-kFirstSoundResID)
- #define sTaunt (131-kFirstSoundResID)
- #define sProjectile (132-kFirstSoundResID)
- #define sSwing (133-kFirstSoundResID)
- #define sDead (134-kFirstSoundResID)
-
-
- struct SpriteGameRec {
- SpriteWorldPtr spriteWorldP;
- SpriteRec spriteArray[kNumberOfSprites];
- SpriteLayerPtr playerLayerP;
- SpriteLayerPtr backgroundLayerP;
- SpriteLayerPtr foregroundLayerP;
- };
-
- typedef struct SpriteGameRec SpriteGameRec;
- typedef SpriteGameRec *SpriteGamePtr, **SpriteGameH;
-
- /*** Function Prototypes ***/
- void PlaySound(Handle soundHandle, SndChannelPtr sndChan);
- void LoopSound(Handle soundHandle, SndChannelPtr sndChan);
- void StopPlayingSound(SndChannelPtr sndChan);
- SW_FUNC void CombatMoveProc(SpritePtr srcSpriteP, Point* spritePoint);
- SW_FUNC void ProjectileMoveProc(SpritePtr srcSpriteP, Point* spritePoint);
- void CombatSpriteCollideProc(SpritePtr srcSpriteP,SpritePtr dstSpriteP,Rect* sectRect);
- short isPressed(unsigned short k);
- void StartWaiting(void);
- void StopWaiting(void);
-
- /*** More from SpriteStatusChex.c ***/
- Boolean PlayerStatusCheck(SpritePtr srcSpriteP, Point *spritePoint);
- Boolean ProjectileStatusCheck(SpritePtr srcSpriteP, Point *spritePoint);
- void SpriteFrameUpdate(SpritePtr srcSpriteP, unsigned char *spriteDataPtr,
- short rightSideAdjustFrames, Boolean forceUpdate);
- void GetSpriteAction(unsigned char *spriteDataPtr, Boolean *spriteAction, Boolean airBorne);
- void GetP1HumanAction(Boolean *spriteAction, Boolean airBorne);
- void GetP2HumanAction(Boolean *spriteAction, Boolean airBorne);
- void GetComputerAction(Boolean *spriteAction, unsigned char *dataP);
- Boolean GetSpriteSide(unsigned char *spriteDataPtr);
- Point GetSpriteMidPoint(Point spritePoint);
- void DigSpriteGrave(short spriteID, short deathMode);
-
- #endif /* StefSprites */