; Phantom Star ; by ; Joe Pemberton ; ; This source is public domain. Feel free to modify it or use it however you ; like, but please credit me. ; #ifndef __LEVELEQU #define __LEVELEQU #define NOTHING() .db LE_NOTHING #define SET_HEALTH(health) .db LE_SET_HEALTH, health #define SET_SHOT_TYPE(type) .db LE_SET_SHOT_TYPE, type #define SET_SHOT_TYPE_CUSTOM(type) .db LE_SET_SHOT_TYPE_CUSTOM \ .dw type #define SET_SHOT_RATE(rate) .db LE_SET_SHOT_RATE, rate #define SET_START_PATH(path,pathcnt) .db LE_SET_START_PATH, path, pathcnt #define SET_START_PATH_CUSTOM(path,pathcnt) .db LE_SET_START_PATH_C \ .dw path \ .db pathcnt #define SET_START_PATH_TIMER(cnt) .db LE_SET_START_PATH_TIMER, cnt #define SET_PATH(path) .db LE_SET_PATH, path #define SET_PATH_CUSTOM(path) .db LE_SET_PATH_CUSTOM \ .dw path #define SET_PATH_TIMER(cnt) .db LE_SET_PATH_TIMER, cnt #define SET_SPRITE(sprite) .db LE_SET_SPRITE, sprite #define SET_SPRITE_CUSTOM(spritetable) .db LE_SET_SPRITE_CUSTOM \ .dw spritetable #define SET_SPRITE_CNT(cnt) .db LE_SET_SPRITE_CNT, cnt #define SET_SPRITE_CNT_VAR(var) .db LE_SET_SPRITE_CNT_VAR, var #define SET_HEIGHT(height) .db LE_SET_HEIGHT, height #define SET_FLAG(flag) .db LE_SET_FLAG, flag #define INSTALL_ROW(num,ycoord,xcoord,yinc,xinc,timerinc) .db LE_INSTALL_ROW, num, ycoord, xcoord, yinc, xinc, timerinc #define INSTALL_ONE(ycoord,xcoord) .db LE_INSTALL_ONE, ycoord, xcoord #define INSTALL_ONE_VAR(yvar,xvar) .db LE_INSTALL_ONE_VAR, yvar, xvar #define WAIT_NUMENEMY(time) .db LG_WAIT_NUMENEMY, time #define LEVEL_END() .db L_END #define GAME_OVER() .db L_GAMEOVER #define SET_TIMER(time) .db LG_SET_TIMER \ .dw time #define SET_VAR(var,val) .db LS_SET_VAR, var, val #define VAR_SET_VAR(var1,var2) .db LS_VAR_SET_VAR, var1, var2 #define ADD_VAR(var,val) .db LS_VAR_ADD, var, val #define VAR_ADD_VAR(var1,var2) .db LS_VAR_ADD_VAR, var1, var2 #define GOTO_NEQ(var1,val,label) .db LS_VAR_NEQ_GOTO, var1, val \ .dw label #define GOTO_NEQ_VAR(var1,var2,label) .db LS_VAR_NEQ_VAR_GOTO, var1, var2 \ .dw label #define GOTO_EQ(var1,val,label) .db LS_VAR_EQ_GOTO, var1, val \ .dw label #define GOTO_EQ_VAR(var1,var2,label) .db LS_VAR_EQ_VAR_GOTO, var1, var2 \ .dw label #define GOTO(label) .db LS_GOTO \ .dw label #define SET_SYNC(max) .db LS_SET_SYNC, max #define SYNC() .db LS_SYNC #define GET_NUMENEMY(var) .db LS_GET_NUMENEMY, var #define GET_NUMBOSS(var) .db LS_GET_NUMBOSS, var #define GET_SHIPX(var) .db LS_GET_SHIPX, var #define GET_SHIPY(var) .db LS_GET_SHIPY, var #define RAND(var,floor,range) .db LS_RAND, var, floor, range #define GOTO_LT(var,val,label) .db LS_VAR_LT_GOTO, var, val \ .dw label #define GOTO_GT(var,val,label) .db LS_VAR_GT_GOTO, var, val \ .dw label ; sprite .equates E_NORMAL .equ 0 E_ROTATER_CC .equ 1 E_ROTATER_C .equ 2 E_BUBBLE .equ 3 E_ORBIT .equ 4 E_x .equ 5 E_SMALLCIRCLE .equ 6 E_TIE .equ 7 E_BOSS1 .equ 8 E_BOSS2 .equ 9 E_FIGHTER .equ 10 E_BIGBOSS .equ 11 E_SMALLX .equ 12 E_DIAMOND .equ 13 E_EXPLOSION .equ 14 LARGE_CIRCLE_CC .equ 0 MEDIUM_CIRCLE_CC .equ 1 LARGE_CIRCLE_C .equ 2 MEDIUM_CIRCLE_C .equ 3 OVAL_CC .equ 4 SQUARE_CC .equ 5 SQUARE_SMOOTH_CC .equ 6 STAY_STILL .equ 7 DIAMOND_CC .equ 8 DIAMOND_C .equ 9 UPDOWN .equ 10 BOSS_UPDOWN .equ 11 FIGURE8 .equ 12 FORWARD .equ 13 SP_LEFT1 .equ 0 SP_LEFT2 .equ 1 SP_LEFT3 .equ 2 SP_LEFT4DOWN1 .equ 3 SP_LEFT4UP1 .equ 4 SP_DOWN1 .equ 5 SP_DOWN2 .equ 6 SP_DOWN3 .equ 7 SP_UP1 .equ 8 SP_UP2 .equ 9 SP_UP3 .equ 10 SP_ZIGZAG .equ 11 SP_UPLEFT1 .equ 12 SP_UPLEFT2 .equ 13 SP_UPLEFT3 .equ 14 SP_DOWNLEFT1 .equ 15 SP_DOWNLEFT2 .equ 16 SP_DOWNLEFT3 .equ 17 SHOT_NORMAL_R .equ 0 SHOT_NORMAL .equ 1 SHOT_STRONG_NORMAL_R .equ 2 SHOT_STRONG_NORMAL .equ 3 SHOT_RANDOM_R .equ 4 SHOT_RANDOM .equ 5 SHOT_STRONG_RANDOM_R .equ 6 SHOT_STRONG_RANDOM .equ 7 SHOT_AIMED_R .equ 8 SHOT_AIMED .equ 9 SHOT_BOSS .equ 10 SHOT_BOSS_STRONG .equ 11 SHOT_BADAIM_R .equ 12 SHOT_BADAIM .equ 13 E_OFFSET_FLAG .equ 0 E_OFFSET_HEALTH .equ 1 E_OFFSET_STARTPATHCNT .equ 2 E_OFFSET_STARTPATHPTR .equ 3 E_OFFSET_PATHCNT .equ 5 E_OFFSET_PATHCNTMAX .equ 6 E_OFFSET_PATHPTR .equ 7 E_OFFSET_X .equ 9 E_OFFSET_Y .equ 10 E_OFFSET_HEIGHT .equ 11 E_OFFSET_SPRITECNT .equ 12 E_OFFSET_SPRITEPTR .equ 13 E_OFFSET_SHOTTIMERMAX .equ 15 E_OFFSET_SHOTTIMER .equ 16 E_OFFSET_SHOTROUTINEPTR .equ 17 ;level scripting commands ; ---- NAME ---- ---- INPUT ---- VAR1 .equ 0 VAR2 .equ 1 VAR3 .equ 2 VAR4 .equ 3 VAR5 .equ 4 VAR6 .equ 5 VAR7 .equ 6 VAR8 .equ 7 LE_NOTHING .equ 0 ; LE_SET_HEALTH .equ 1 ; byte LE_SET_SHOT_TYPE .equ 2 ; byte LE_SET_SHOT_TYPE_CUSTOM .equ 3 ; word LE_SET_SHOT_RATE .equ 4 ; byte (default is 30) LE_SET_START_PATH .equ 5 ; byte, byte pattern, pathcnt LE_SET_START_PATH_CUSTOM .equ 6 ; word, byte pattern, pathcnt LE_SET_START_PATH_TIMER .equ 7 ; byte LE_SET_PATH .equ 8 ; byte pattern LE_SET_PATH_CUSTOM .equ 9 ; word pattern LE_SET_PATH_TIMER .equ 10 ; byte pathcnt LE_SET_SPRITE .equ 11 ; byte LE_SET_SPRITE_CUSTOM .equ 12 ; word LE_SET_SPRITE_CNT .equ 13 ; byte LE_SET_SPRITE_CNT_VAR .equ 14 ; byte cnt var LE_SET_HEIGHT .equ 15 ; byte (default is 8) LE_SET_FLAG .equ 16 ; byte (default is %00000000) LE_INSTALL_ONE .equ 17 ; byte, byte y, x LE_INSTALL_ONE_VAR .equ 18 ; byte, byte yvar, xvar LE_INSTALL_ROW .equ 19 ; byte, byte, byte, byte, byte, byte ; (number, y, x, yinc, xinc, startpathtimer inc) LG_SET_TIMER .equ 20 ; word ; Wait for N frames before continuing ; LG_WAIT_NUMENEMY .equ 21 ; byte ; Wait until the number of enemies is equal to or less than NUMENEMY LG_WAIT_NUMSHOTS .equ 22 ; byte ; Wait until the number of player shots is equal to or less than NUMSHOTS L_END .equ 23 ; L_GAMEOVER .equ 24 ; LS_SET_VAR .equ 25 ; byte, byte var, value LS_VAR_SET_VAR .equ 26 ; byte, byte var dest, var src LS_VAR_ADD .equ 27 ; byte, byte var, value LS_VAR_ADD_VAR .equ 28 ; byte, byte var dest, var src LS_VAR_NEQ_GOTO .equ 29 ; byte, byte, word var, value, address ; (if VAR1 != byte, goto LABEL) LS_VAR_NEQ_VAR_GOTO .equ 30 ; byte, byte, word var, var, address ; (if VAR1 != byte, goto LABEL) LS_VAR_EQ_GOTO .equ 31 ; byte, byte, word var, value, address ; (if VAR1 == byte, goto LABEL) LS_VAR_EQ_VAR_GOTO .equ 32 ; byte, byte, word var, var, address ; (if VAR1 == byte, goto LABEL) LS_GOTO .equ 33 ; word LS_SET_SYNC .equ 34 ; byte LS_SYNC .equ 35 ; LS_GET_NUMENEMY .equ 36 ; byte (var) LS_GET_NUMBOSS .equ 37 ; byte (var) LS_GET_SHIPX .equ 38 ; byte (var) LS_GET_SHIPY .equ 39 ; byte (var) LS_RAND .equ 40 ; byte, byte, byte (var, floor, range) LS_VAR_LT_GOTO .equ 41 ; byte, byte, word (var, value, address) LS_VAR_GT_GOTO .equ 42 ; byte, byte, word (var, value, address) #endif