.extreq 0 .beginreses .endreses ######################################################### ######## Apply incoming mode data to first timer ######## ######## --------------------------------------- ######## ######## ######## ######## DON'T TOUCH MODE FUNCTIONS UNLESS YOU ######## ######## WANT A MODE TO DO SOMETHING SPECIFIC ######## ######## FOR THAT LEVEL! ######## ######## ######## ######## GFX EFFECTS APPLIED OUTSIDE OF VM SYS! ######## ######################################################### .beginfunc applyMode .endargs .var sharedHTContainer string "" .var modeString string "__mode" .var mode int 0 .var LAST_OBJECT string "" .var LAST_INT_1 int 0 .var LAST_INT int 0 .endvars OP_POP_OBJECT OP_POP_INT OP_POP_INT OP_SYSTEM_SHARED OP_ASSIGN_OBJECT v:LAST_OBJECT v:sharedHTContainer OP_POP_OBJECT SUB_OP_ONE_HT_GET v:sharedHTContainer v:modeString OP_CONST_INT 0 OP_SUB_EXTRACT_INT v:LAST_OBJECT v:LAST_INT_1 OP_ASSIGN_INT v:LAST_INT v:mode OP_POP_INT OP_POP_INT OP_EQUALS_CONST_INT v:mode 0 OP_CONTROL_JUMP_CONDITIONAL l:mode0 OP_EQUALS_CONST_INT v:mode 1 OP_CONTROL_JUMP_CONDITIONAL l:mode1 OP_EQUALS_CONST_INT v:mode 2 OP_CONTROL_JUMP_CONDITIONAL l:mode2 OP_EQUALS_CONST_INT v:mode 3 OP_CONTROL_JUMP_CONDITIONAL l:mode3 OP_EQUALS_CONST_INT v:mode 4 OP_CONTROL_JUMP_CONDITIONAL l:mode4 OP_EQUALS_CONST_INT v:mode 5 OP_CONTROL_JUMP_CONDITIONAL l:mode5 OP_EQUALS_CONST_INT v:mode 6 OP_CONTROL_JUMP_CONDITIONAL l:mode6 OP_EQUALS_CONST_INT v:mode 7 OP_CONTROL_JUMP_CONDITIONAL l:mode7 OP_CONTROL_JUMP l:end .label mode0 OP_CONTROL_JUMP l:end .label mode1 OP_CONTROL_JUMP l:end .label mode2 OP_CONTROL_JUMP l:end .label mode3 SUB_OP_ONE_GAME_SET_TIMER_STATIC -1 f:fastForwardModeTimerHit 1000 0 OP_CONTROL_CALL 0 0 0 0 0 0 f:fastForwardModeTimerHit OP_CONTROL_JUMP l:end .label mode4 SUB_OP_ONE_GAME_SET_TIMER_STATIC -1 f:timeWarpModeTimerHit 1000 0 OP_CONTROL_CALL 0 0 0 0 0 0 f:timeWarpModeTimerHit OP_CONTROL_JUMP l:end .label mode5 SUB_OP_ONE_GAME_SET_TIMER_STATIC -1 f:superJumpModeTimerHit 1000 0 OP_CONTROL_CALL 0 0 0 0 0 0 f:superJumpModeTimerHit OP_CONTROL_JUMP l:end .label mode6 SUB_OP_ONE_GAME_SET_TIMER_STATIC -1 f:ultraShakeModeTimerHit 1000 0 OP_CONTROL_CALL 0 0 0 0 0 0 f:ultraShakeModeTimerHit OP_CONTROL_JUMP l:end .label mode7 SUB_OP_ONE_GAME_SET_TIMER_STATIC -1 f:psychoticModeTimerHit 500 0 OP_CONTROL_CALL 0 0 0 0 0 0 f:psychoticModeTimerHit OP_CONTROL_JUMP l:end .label end OP_CONTROL_RET .endfunc .beginfunc fastForwardModeTimerHit .endargs .endvars SUB_OP_ONE_GAME_GET_PLAYER_X_RATE OP_LESS_THAN_CONST_INT 0 0 OP_CONTROL_JUMP_CONDITIONAL l:neg OP_CONTROL_JUMP l:pos .label neg SUB_OP_ONE_GAME_SET_PLAYER_X_RATE_STATIC -1 10 OP_CONTROL_JUMP l:end .label pos SUB_OP_ONE_GAME_SET_PLAYER_X_RATE_STATIC 1 10 OP_CONTROL_JUMP l:end .label end OP_CONTROL_RET .endfunc .beginfunc timeWarpModeTimerHit .endargs .endvars SUB_OP_ONE_GAME_SET_SLOWDOWN_RATE_STATIC 0 SUB_OP_ONE_GAME_RAND_MAX_STATIC 3 OP_EQUALS_CONST_INT 0 0 OP_CONTROL_JUMP_CONDITIONAL l:timeflux OP_EQUALS_CONST_INT 0 1 OP_CONTROL_JUMP_CONDITIONAL l:warpX OP_EQUALS_CONST_INT 0 2 OP_CONTROL_JUMP_CONDITIONAL l:speedChange ## flux .label timeflux SUB_OP_ONE_GAME_RAND_MAX_STATIC 3 # 1 SUB_OP_ONE_GAME_SET_SLOWDOWN_RATE 1 OP_CONTROL_JUMP l:end ## warpX .label warpX SUB_OP_ONE_GAME_GET_PLAYER_X_POS # 1 SUB_OP_ONE_GAME_RAND_MAX_STATIC 80 # 2 OP_SUBTRACT_CONST_INT 2 40 # 3 OP_ADDITION_INT 1 3 # 4 SUB_OP_ONE_GAME_SET_PLAYER_X_POS 4 OP_CONTROL_JUMP l:end ## speedChange .label speedChange SUB_OP_ONE_GAME_GET_PLAYER_X_RATE # 1 2 OP_LESS_THAN_CONST_INT 1 0 OP_CONTROL_JUMP_CONDITIONAL l:speedChange_neg .label speedChange_pos SUB_OP_ONE_GAME_SET_PLAYER_X_RATE_STATIC -1 23 OP_CONTROL_JUMP l:end .label speedChange_neg SUB_OP_ONE_GAME_SET_PLAYER_X_RATE_STATIC 1 23 OP_CONTROL_JUMP l:end .label end OP_CONTROL_RET .endfunc .beginfunc superJumpModeTimerHit .endargs .endvars SUB_OP_ONE_GAME_SET_POWER_STATIC hx:700 OP_CONTROL_RET .endfunc .beginfunc ultraShakeModeTimerHit .endargs .endvars SUB_OP_ONE_GAME_RAND_MAX_STATIC 30 SUB_OP_ONE_GAME_SET_SHAKE 0 OP_CONTROL_RET .endfunc .beginfunc psychoticModeTimerHit .endargs .endvars SUB_OP_ONE_GAME_WHITE_OUT_STATIC -1 SUB_OP_ONE_GAME_SET_SHAKE_STATIC 0 SUB_OP_ONE_GAME_SET_SLOWDOWN_RATE_STATIC 0 # power modder .label powerModder SUB_OP_ONE_GAME_RAND_MAX_STATIC hx:27f # 1 SUB_OP_ONE_GAME_SET_POWER 0 OP_POP_INT .label shake SUB_OP_ONE_GAME_RAND_MAX_STATIC 15 SUB_OP_ONE_GAME_SET_SHAKE 0 OP_POP_INT SUB_OP_ONE_GAME_RAND_MAX_STATIC 6 OP_EQUALS_CONST_INT 0 0 OP_CONTROL_JUMP_CONDITIONAL l:whiteOut OP_EQUALS_CONST_INT 0 1 OP_CONTROL_JUMP_CONDITIONAL l:timeflux OP_EQUALS_CONST_INT 0 2 OP_CONTROL_JUMP_CONDITIONAL l:blackOut OP_EQUALS_CONST_INT 0 3 OP_CONTROL_JUMP_CONDITIONAL l:warpX OP_EQUALS_CONST_INT 0 4 OP_CONTROL_JUMP_CONDITIONAL l:changeDirection OP_EQUALS_CONST_INT 0 5 OP_CONTROL_JUMP_CONDITIONAL l:changeSpeed # whiteOut .label whiteOut SUB_OP_ONE_GAME_WHITE_OUT_STATIC hx:00FFFFFF OP_CONTROL_JUMP l:end ## flux .label timeflux SUB_OP_ONE_GAME_RAND_MAX_STATIC 3 # 1 SUB_OP_ONE_GAME_SET_SLOWDOWN_RATE 1 OP_CONTROL_JUMP l:end ## warpX .label warpX SUB_OP_ONE_GAME_GET_PLAYER_X_POS # 1 SUB_OP_ONE_GAME_RAND_MAX_STATIC 80 # 2 OP_SUBTRACT_CONST_INT 2 40 # 3 OP_ADDITION_INT 1 3 # 4 SUB_OP_ONE_GAME_SET_PLAYER_X_POS 4 OP_CONTROL_JUMP l:end ## blackOut .label blackOut SUB_OP_ONE_GAME_WHITE_OUT_STATIC hx:00000000 OP_CONTROL_JUMP l:end ## changeDirection .label changeDirection SUB_OP_ONE_GAME_GET_PLAYER_X_RATE # 1 2 OP_LESS_THAN_CONST_INT 1 0 OP_CONTROL_JUMP_CONDITIONAL l:changeDirection_neg .label changeDirection_pos SUB_OP_ONE_GAME_SET_PLAYER_X_RATE_STATIC -1 23 OP_CONTROL_JUMP l:end .label changeDirection_neg SUB_OP_ONE_GAME_SET_PLAYER_X_RATE_STATIC 1 23 OP_CONTROL_JUMP l:end ## changeSpeed .label changeSpeed SUB_OP_ONE_GAME_GET_PLAYER_X_RATE # 1 2 OP_LESS_THAN_CONST_INT 1 0 OP_CONTROL_JUMP_CONDITIONAL l:changeSpeed_neg .label changeSpeed_pos SUB_OP_ONE_GAME_RAND_MAX_STATIC 15 # 3 OP_CONST_INT -1 # 4 OP_ADDITION_CONST_INT 3 8 # 5 SUB_OP_ONE_GAME_SET_PLAYER_X_RATE 4 5 OP_CONTROL_JUMP l:end .label changeSpeed_neg SUB_OP_ONE_GAME_RAND_MAX_STATIC 15 # 3 OP_CONST_INT -1 # 4 OP_ADDITION_CONST_INT 3 8 # 5 SUB_OP_ONE_GAME_SET_PLAYER_X_RATE 4 5 OP_CONTROL_JUMP l:end .label end OP_CONTROL_RET .endfunc ################################################## ######## ######## ######## START EDITTING FROM HERE ######## ######## ######## ################################################## .beginreses .resout 500 000000010000000100000000 .resout 600 000000010000000100000500 .resout 700 0000000000000000 .resout 701 00000500 .endreses ############################# ######## Scene setup ######## ############################# .beginfunc sceneGraphicsSetup .endargs .endvars ### resize db OP_CONST_INT 1 OP_CONST_INT 1 OP_CONST_INT 2 OP_CONST_INT 1 SUB_OP_ONE_GAME_SCENE_RESIZE_DB 3 2 1 0 OP_MULTI_POP_INT 4 ### load interpolators OP_CONST_SHORT 700 OP_CONST_SHORT 701 OP_CONST_INT 0 OP_CONST_INT 1 OP_CONST_INT 0 OP_CONTROL_CALL 0 2 3 0 0 0 f:loadNewInterpolatorFromRes ### load up images OP_CONST_INT 0 OP_CONST_STRING "JAR_RES:/z0_shared.script:0::0:" SUB_OP_ONE_GAME_SCENE_LOAD_NEW_IMAGE 0 0 OP_POP_OBJECT OP_POP_INT ### load up sequences OP_CONST_SHORT 500 OP_CONST_INT 0 OP_CONTROL_CALL 0 1 1 0 0 0 f:loadNewSequenceFromRes OP_CONST_SHORT 600 OP_CONST_INT 1 OP_CONTROL_CALL 0 1 1 0 0 0 f:loadNewSequenceFromRes ### load sprite OP_CONST_INT 0 OP_CONST_INT 0 OP_CONST_INT 40 OP_CONST_INT 40 OP_CONST_INT 0 OP_CONST_INT 1 SUB_OP_ONE_GAME_SCENE_LOAD_NEW_SPRITE 5 4 3 2 1 0 OP_MULTI_POP_INT 6 ### load layers OP_CONST_INT 0 OP_CONST_INT 1 SUB_OP_ONE_GAME_SCENE_RESIZE_LAYER 1 0 OP_MULTI_POP_INT 2 OP_CONST_INT 0 OP_CONST_INT 0 OP_CONST_INT 5 SUB_OP_ONE_GAME_SCENE_RESIZE_LAYER_ITEMS 2 1 0 OP_MULTI_POP_INT 3 OP_CONST_INT 0 OP_CONST_INT 0 OP_CONST_INT 0 OP_CONST_INT 0 OP_CONST_INT 5 OP_CONST_INT 40 OP_CONST_INT 10 OP_CONTROL_CALL 0 0 7 0 0 0 f:setLinkedParallaxLayerLoop ### load layer items SUB_OP_ONE_GAME_SCENE_SET_ITEM_STATIC 0 3 0 0 0 SUB_OP_ONE_GAME_SCENE_SET_ITEM_STATIC 0 2 0 0 0 SUB_OP_ONE_GAME_SCENE_SET_ITEM_STATIC 0 1 0 0 0 SUB_OP_ONE_GAME_SCENE_SET_ITEM_STATIC 0 0 0 0 0 SUB_OP_ONE_GAME_SCENE_SET_ITEM_STATIC 0 3 1 0 0 SUB_OP_ONE_GAME_SCENE_SET_ITEM_STATIC 40 2 1 0 0 SUB_OP_ONE_GAME_SCENE_SET_ITEM_STATIC 0 1 1 0 0 SUB_OP_ONE_GAME_SCENE_SET_ITEM_STATIC 0 0 1 0 0 SUB_OP_ONE_GAME_SCENE_SET_ITEM_STATIC 0 3 2 0 0 SUB_OP_ONE_GAME_SCENE_SET_ITEM_STATIC 80 2 2 0 0 SUB_OP_ONE_GAME_SCENE_SET_ITEM_STATIC 0 1 2 0 0 SUB_OP_ONE_GAME_SCENE_SET_ITEM_STATIC 0 0 2 0 0 SUB_OP_ONE_GAME_SCENE_SET_ITEM_STATIC 0 3 3 0 0 SUB_OP_ONE_GAME_SCENE_SET_ITEM_STATIC 120 2 3 0 0 SUB_OP_ONE_GAME_SCENE_SET_ITEM_STATIC 0 1 3 0 0 SUB_OP_ONE_GAME_SCENE_SET_ITEM_STATIC 0 0 3 0 0 SUB_OP_ONE_GAME_SCENE_SET_ITEM_STATIC 0 3 4 0 0 SUB_OP_ONE_GAME_SCENE_SET_ITEM_STATIC 160 2 4 0 0 SUB_OP_ONE_GAME_SCENE_SET_ITEM_STATIC 0 1 4 0 0 SUB_OP_ONE_GAME_SCENE_SET_ITEM_STATIC 0 0 4 0 0 OP_CONTROL_RET .endfunc .beginfunc setNoneLayer .arg setIndex int .arg layerIndex int .endargs .var pos int 0 .var data int 0 .endvars OP_MULTI_POP_INT 2 OP_CONST_INT 0 OP_CONST_INT 0 SUB_OP_ONE_GAME_SCENE_SET_LAYER_PARAM v:data v:pos v:layerIndex v:setIndex OP_MULTI_POP_INT 2 OP_CONST_INT 3 OP_CONST_INT 1 SUB_OP_ONE_GAME_SCENE_SET_LAYER_PARAM v:data v:pos v:layerIndex v:setIndex OP_MULTI_POP_INT 2 OP_CONTROL_RET .endfunc .beginfunc setStaticLayer .arg setIndex int .arg layerIndex int .arg transX int .arg transY int .endargs .var pos int 0 .var data int 0 .endvars OP_MULTI_POP_INT 2 OP_CONST_INT 0 OP_CONST_INT 1 SUB_OP_ONE_GAME_SCENE_SET_LAYER_PARAM v:data v:pos v:layerIndex v:setIndex OP_MULTI_POP_INT 2 OP_CONST_INT 1 OP_CONST_INT 0 # unused SUB_OP_ONE_GAME_SCENE_SET_LAYER_PARAM v:transX v:pos v:layerIndex v:setIndex OP_MULTI_POP_INT 2 OP_CONST_INT 2 OP_CONST_INT 0 # unused SUB_OP_ONE_GAME_SCENE_SET_LAYER_PARAM v:transY v:pos v:layerIndex v:setIndex OP_MULTI_POP_INT 2 OP_CONST_INT 3 OP_CONST_INT 1 SUB_OP_ONE_GAME_SCENE_SET_LAYER_PARAM v:data v:pos v:layerIndex v:setIndex OP_MULTI_POP_INT 2 OP_CONTROL_RET .endfunc .beginfunc setScrollLayer .arg setIndex int .arg layerIndex int .arg transX int .arg transY int .arg xRate int .arg yRate int .endargs .var pos int 0 .var data int 0 .endvars OP_MULTI_POP_INT 2 OP_CONST_INT 0 OP_CONST_INT 2 SUB_OP_ONE_GAME_SCENE_SET_LAYER_PARAM v:data v:pos v:layerIndex v:setIndex OP_MULTI_POP_INT 2 OP_CONST_INT 1 OP_CONST_INT 0 # unused SUB_OP_ONE_GAME_SCENE_SET_LAYER_PARAM v:transX v:pos v:layerIndex v:setIndex OP_MULTI_POP_INT 2 OP_CONST_INT 2 OP_CONST_INT 0 # unused SUB_OP_ONE_GAME_SCENE_SET_LAYER_PARAM v:transY v:pos v:layerIndex v:setIndex OP_MULTI_POP_INT 2 OP_CONST_INT 3 OP_CONST_INT 1 SUB_OP_ONE_GAME_SCENE_SET_LAYER_PARAM v:data v:pos v:layerIndex v:setIndex OP_MULTI_POP_INT 2 OP_CONST_INT 4 OP_CONST_INT 0 SUB_OP_ONE_GAME_SCENE_SET_LAYER_PARAM v:data v:pos v:layerIndex v:setIndex OP_MULTI_POP_INT 2 OP_CONST_INT 5 OP_CONST_INT 0 SUB_OP_ONE_GAME_SCENE_SET_LAYER_PARAM v:data v:pos v:layerIndex v:setIndex OP_MULTI_POP_INT 2 OP_CONST_INT 6 OP_CONST_INT 0 # unused SUB_OP_ONE_GAME_SCENE_SET_LAYER_PARAM v:xRate v:pos v:layerIndex v:setIndex OP_MULTI_POP_INT 2 OP_CONST_INT 7 OP_CONST_INT 0 # unused SUB_OP_ONE_GAME_SCENE_SET_LAYER_PARAM v:yRate v:pos v:layerIndex v:setIndex OP_MULTI_POP_INT 2 OP_CONST_INT 8 OP_CONST_INT 0 SUB_OP_ONE_GAME_SCENE_SET_LAYER_PARAM v:data v:pos v:layerIndex v:setIndex OP_MULTI_POP_INT 2 OP_CONST_INT 9 OP_CONST_INT 0 SUB_OP_ONE_GAME_SCENE_SET_LAYER_PARAM v:data v:pos v:layerIndex v:setIndex OP_MULTI_POP_INT 2 OP_CONTROL_RET .endfunc .beginfunc setLinkedParallaxLayer .arg setIndex int .arg layerIndex int .arg transX int .arg transY int .arg slowDownRate int .endargs .var pos int 0 .var data int 0 .endvars OP_MULTI_POP_INT 2 OP_CONST_INT 0 OP_CONST_INT 3 SUB_OP_ONE_GAME_SCENE_SET_LAYER_PARAM v:data v:pos v:layerIndex v:setIndex OP_MULTI_POP_INT 2 OP_CONST_INT 1 OP_CONST_INT 0 # unused SUB_OP_ONE_GAME_SCENE_SET_LAYER_PARAM v:transX v:pos v:layerIndex v:setIndex OP_MULTI_POP_INT 2 OP_CONST_INT 2 OP_CONST_INT 0 # unused SUB_OP_ONE_GAME_SCENE_SET_LAYER_PARAM v:transY v:pos v:layerIndex v:setIndex OP_MULTI_POP_INT 2 OP_CONST_INT 3 OP_CONST_INT 1 SUB_OP_ONE_GAME_SCENE_SET_LAYER_PARAM v:data v:pos v:layerIndex v:setIndex OP_MULTI_POP_INT 2 OP_CONST_INT 4 OP_CONST_INT 0 # unused SUB_OP_ONE_GAME_SCENE_SET_LAYER_PARAM v:slowDownRate v:pos v:layerIndex v:setIndex OP_MULTI_POP_INT 2 OP_CONST_INT 5 OP_CONST_INT 0 SUB_OP_ONE_GAME_SCENE_SET_LAYER_PARAM v:data v:pos v:layerIndex v:setIndex OP_MULTI_POP_INT 2 OP_CONTROL_RET .endfunc .beginfunc setLinkedParallaxLayerLoop .arg setIndex int .arg layerIndex int .arg transX int .arg transY int .arg slowDownRate int .arg loopLength int .arg repeatCount int .endargs .var pos int 0 .var data int 0 .endvars OP_MULTI_POP_INT 2 OP_CONST_INT 0 OP_CONST_INT 4 SUB_OP_ONE_GAME_SCENE_SET_LAYER_PARAM v:data v:pos v:layerIndex v:setIndex OP_MULTI_POP_INT 2 OP_CONST_INT 1 OP_CONST_INT 0 # unused SUB_OP_ONE_GAME_SCENE_SET_LAYER_PARAM v:transX v:pos v:layerIndex v:setIndex OP_MULTI_POP_INT 2 OP_CONST_INT 2 OP_CONST_INT 0 # unused SUB_OP_ONE_GAME_SCENE_SET_LAYER_PARAM v:transY v:pos v:layerIndex v:setIndex OP_MULTI_POP_INT 2 OP_CONST_INT 3 OP_CONST_INT 1 SUB_OP_ONE_GAME_SCENE_SET_LAYER_PARAM v:data v:pos v:layerIndex v:setIndex OP_MULTI_POP_INT 2 OP_CONST_INT 4 OP_CONST_INT 0 # unused SUB_OP_ONE_GAME_SCENE_SET_LAYER_PARAM v:slowDownRate v:pos v:layerIndex v:setIndex OP_MULTI_POP_INT 2 OP_CONST_INT 5 OP_CONST_INT 0 SUB_OP_ONE_GAME_SCENE_SET_LAYER_PARAM v:data v:pos v:layerIndex v:setIndex OP_MULTI_POP_INT 2 OP_CONST_INT 6 OP_CONST_INT 0 # unused SUB_OP_ONE_GAME_SCENE_SET_LAYER_PARAM v:loopLength v:pos v:layerIndex v:setIndex OP_MULTI_POP_INT 2 OP_CONST_INT 7 OP_CONST_INT 0 # unused SUB_OP_ONE_GAME_SCENE_SET_LAYER_PARAM v:repeatCount v:pos v:layerIndex v:setIndex OP_MULTI_POP_INT 2 OP_CONTROL_RET .endfunc .beginfunc loadNewInterpolatorFromRes .arg xyResId short .arg timeResId short .arg loadPos int .arg repeat int .arg smoothInt int .endargs .endvars OP_SYSTEM_DIRECT_LOAD_RES_POSITION 0 # 0obj = barray OP_SIZE_OF 0 # 3int = barray size OP_DIVIDE_CONST_INT 3 4 # 4int = iarray size OP_CONST_INT 0 # 5int = start offset SUB_OP_ONE_ARRAY_BYTE_TO_INT 4 5 0 # 1obj = iarray OP_ASSIGN_OBJECT 1 0 OP_POP_OBJECT OP_MULTI_POP_INT 3 OP_SYSTEM_DIRECT_LOAD_RES_POSITION 1 # 1obj = barray OP_SIZE_OF 1 # 3int = barray size OP_DIVIDE_CONST_INT 3 4 # 4int = iarray size OP_CONST_INT 0 # 5int = start offset SUB_OP_ONE_ARRAY_BYTE_TO_INT 4 5 1 # 2obj = iarray OP_ASSIGN_OBJECT 2 1 OP_POP_OBJECT OP_MULTI_POP_INT 3 SUB_OP_ONE_GAME_SCENE_LOAD_NEW_INTERPOLATION_POINTS v:smoothInt v:repeat 1 0 v:loadPos OP_CONTROL_RET .endfunc .beginfunc loadNewSequenceFromRes .arg resId short .arg loadPos int .endargs .endvars OP_SYSTEM_DIRECT_LOAD_RES_POSITION 0 # 0obj = barray OP_SIZE_OF 0 # 1int = barray size OP_DIVIDE_CONST_INT 1 4 # 2int = iarray size OP_CONST_INT 0 # 3int = start offset SUB_OP_ONE_ARRAY_BYTE_TO_INT 2 3 0 # 1obj = iarray SUB_OP_ONE_GAME_SCENE_LOAD_NEW_SEQUENCE 1 0 OP_CONTROL_RET .endfunc #################################### ######## Post process setup ######## #################################### .beginfunc postProcessSetup .endargs .endvars OP_CONTROL_CALL 0 0 0 0 0 0 f:applyMode SUB_OP_ONE_GAME_SET_GAME_FLAGS_STATIC hx:00000001 SUB_OP_ONE_GAME_SET_GAME_FLAGS_2_STATIC hx:0000003F SUB_OP_ONE_GAME_ON_DIE_STATIC f:onDie OP_CONTROL_RET .endfunc .beginfunc onDie .endargs .endvars SUB_OP_ONE_GAME_SET_RET_STATIC 2 # passed SUB_OP_ONE_GAME_SET_STATE_STATIC 3 # game finished OP_CONTROL_RET .endfunc ######################################################### ######## Entry point ######## ######## ----------- ######## ######## - Fill in stack lengths for all other ######## ######## calls ######## ######## - Add in basic images ######## ######## - Add in maximum timer count ######## ######## - Add in basic image properties ######## ######## - Add in map data ######## ######## - Add in post/scene setup addresses ######## ######## ######## ######################################################### .beginfunc main .endargs .var zeroItem int 0 .var imageIdString string "imageIds" .var mapDataString string "mapData" .var maxTimersString string "maxTimers" .var stackLengthsString string "stackLengths" .var spriteFrameWidthString string "spriteFrameWidth" .var postSetupEntryPointString string "postSetupEntryPoint" .var sceneSetupEntryPointString string "sceneSetupEntryPoint" .var sharedHTContainer string "" .var imageIdsArray string "" .var mapDataArray string "" .var maxTimersArray string "" .var stackLengthsArray string "" .var postSetupEntryPointArray string "" .var sceneSetupEntryPointArray string "" .var spriteFrameWidthArray string "" .var singleCount int 1 .var timerCounter int 0 .var LAST_OBJECT string "" .var LAST_INT int 0 .var LAST_LONG long 0 .endvars ### LAST_* should be invalid after this OP_POP_OBJECT OP_POP_INT OP_POP_LONG ### move shared into setup var OP_SYSTEM_SHARED OP_ASSIGN_OBJECT v:LAST_OBJECT v:sharedHTContainer OP_POP_OBJECT ### setup timers OP_CONST_INT 1 OP_NEW_INT_ARRAY v:LAST_INT OP_POP_INT OP_CONST_INT 5 ### timer numbers OP_SUB_ASSIGN_INT v:LAST_OBJECT v:LAST_INT v:timerCounter OP_POP_INT OP_INC_INT v:timerCounter 1 OP_ASSIGN_OBJECT v:LAST_OBJECT v:maxTimersArray OP_POP_OBJECT # load stack lengths OP_CONTROL_CALL 0 0 0 0 0 0 f:loadStackLengths OP_GET_RET 4 OP_ASSIGN_OBJECT v:LAST_OBJECT v:stackLengthsArray OP_POP_OBJECT # post process func OP_NEW_INT_ARRAY v:singleCount OP_ASSIGN_OBJECT v:LAST_OBJECT v:postSetupEntryPointArray OP_POP_OBJECT OP_CONST_INT f:postProcessSetup OP_SUB_ASSIGN_INT v:postSetupEntryPointArray v:LAST_INT v:zeroItem OP_POP_INT # scene setup func OP_NEW_INT_ARRAY v:singleCount OP_ASSIGN_OBJECT v:LAST_OBJECT v:sceneSetupEntryPointArray OP_POP_OBJECT OP_CONST_INT f:sceneGraphicsSetup OP_SUB_ASSIGN_INT v:sceneSetupEntryPointArray v:LAST_INT v:zeroItem OP_POP_INT # block image data OP_CONTROL_CALL 0 0 0 0 0 0 f:loadMainImages OP_GET_RET 4 OP_ASSIGN_OBJECT v:LAST_OBJECT v:imageIdsArray OP_POP_OBJECT # load map data OP_CONTROL_CALL 0 0 0 0 0 0 f:loadMapData OP_GET_RET 4 OP_ASSIGN_OBJECT v:LAST_OBJECT v:mapDataArray OP_POP_OBJECT # shared hash fill SUB_OP_ONE_HT_PUT v:sharedHTContainer v:imageIdString v:imageIdsArray SUB_OP_ONE_HT_PUT v:sharedHTContainer v:mapDataString v:mapDataArray SUB_OP_ONE_HT_PUT v:sharedHTContainer v:maxTimersString v:maxTimersArray SUB_OP_ONE_HT_PUT v:sharedHTContainer v:stackLengthsString v:stackLengthsArray SUB_OP_ONE_HT_PUT v:sharedHTContainer v:postSetupEntryPointString v:postSetupEntryPointArray SUB_OP_ONE_HT_PUT v:sharedHTContainer v:sceneSetupEntryPointString v:sceneSetupEntryPointArray OP_CONTROL_RET .endfunc .beginfunc loadMainImages .endargs .var imageIdCounter int 0 .var imageIdCount int 17 .var imageIdsArray string "" .var LAST_OBJECT string "" .endvars OP_POP_OBJECT OP_NEW_OBJECT_ARRAY v:imageIdCount OP_ASSIGN_OBJECT v:LAST_OBJECT v:imageIdsArray OP_POP_OBJECT OP_CONST_STRING "JAR:/kazwalk.png::1:" OP_SUB_ASSIGN_OBJECT v:imageIdsArray v:LAST_OBJECT v:imageIdCounter OP_INC_INT v:imageIdCounter 1 OP_POP_OBJECT OP_CONST_STRING "JAR:/block1.png::1:" OP_SUB_ASSIGN_OBJECT v:imageIdsArray v:LAST_OBJECT v:imageIdCounter OP_INC_INT v:imageIdCounter 1 OP_POP_OBJECT OP_SET_RET 4 v:imageIdsArray OP_CONTROL_RET .endfunc .beginfunc loadStackLengths .endargs .var stackLengthCounter int 0 .var tempInt int 0 .var stackLengthsArray string "" .endvars OP_POP_INT OP_POP_OBJECT OP_CONST_INT 8 OP_NEW_INT_ARRAY v:tempInt OP_POP_INT OP_CONST_INT 64 OP_SUB_ASSIGN_INT v:stackLengthsArray v:tempInt v:stackLengthCounter OP_POP_INT OP_INC_INT v:stackLengthCounter 1 OP_CONST_INT 64 OP_SUB_ASSIGN_INT v:stackLengthsArray v:tempInt v:stackLengthCounter OP_POP_INT OP_INC_INT v:stackLengthCounter 1 OP_CONST_INT 64 OP_SUB_ASSIGN_INT v:stackLengthsArray v:tempInt v:stackLengthCounter OP_POP_INT OP_INC_INT v:stackLengthCounter 1 OP_CONST_INT 64 OP_SUB_ASSIGN_INT v:stackLengthsArray v:tempInt v:stackLengthCounter OP_POP_INT OP_INC_INT v:stackLengthCounter 1 OP_CONST_INT 64 OP_SUB_ASSIGN_INT v:stackLengthsArray v:tempInt v:stackLengthCounter OP_POP_INT OP_INC_INT v:stackLengthCounter 1 OP_CONST_INT 64 OP_SUB_ASSIGN_INT v:stackLengthsArray v:tempInt v:stackLengthCounter OP_POP_INT OP_INC_INT v:stackLengthCounter 1 OP_CONST_INT 64 OP_SUB_ASSIGN_INT v:stackLengthsArray v:tempInt v:stackLengthCounter OP_POP_INT OP_INC_INT v:stackLengthCounter 1 OP_CONST_INT 64 OP_SUB_ASSIGN_INT v:stackLengthsArray v:tempInt v:stackLengthCounter OP_POP_INT OP_INC_INT v:stackLengthCounter 1 OP_SET_RET 4 v:stackLengthsArray OP_CONTROL_RET .endfunc .beginfunc loadMapData .endargs .var mapFloorCount int 200 .var floorCounter int 0 .var floorNew int hx:00000001 .var floorEmpty int hx:00000000 .var floorFull int hx:11111111 .var randShifter int 0 .var mapDataArray string "" .var LAST_OBJECT string "" .var LAST_INT int 0 .var LAST_LONG long 0 .endvars ### LAST_* should be invalid after this OP_POP_OBJECT OP_POP_INT OP_POP_LONG OP_NEW_INT_ARRAY v:mapFloorCount OP_ASSIGN_OBJECT v:LAST_OBJECT v:mapDataArray OP_POP_OBJECT # set seed OP_SYSTEM_TIME OP_CONV_LONG_TO_INT v:LAST_LONG OP_POP_LONG SUB_OP_ONE_GAME_RAND_SEED v:LAST_INT OP_POP_INT # set top and bottom tiles OP_PLACE_CONST_INT v:floorCounter 199 OP_SUB_ASSIGN_INT v:mapDataArray v:floorFull v:floorCounter # initalize counter to 2 OP_PLACE_CONST_INT v:floorCounter 0 .label whileLessThan199 OP_GREATER_THAN_CONST_INT v:floorCounter 199 OP_CONTROL_JUMP_CONDITIONAL l:whileLessThan199End # create random shift amount SUB_OP_ONE_GAME_RAND_MAX_STATIC 8 OP_ASSIGN_INT v:LAST_INT v:randShifter OP_POP_INT OP_MULTIPLY_CONST_INT v:randShifter hx:FFFFFFFC OP_ASSIGN_INT v:LAST_INT v:randShifter OP_POP_INT OP_CONTROL_JUMP l:done .label done # apply shift and place OP_SHIFT_LEFT_INT v:randShifter v:floorNew OP_SUB_ASSIGN_INT v:mapDataArray v:LAST_INT v:floorCounter OP_POP_INT # move up floor counter for next iteration OP_INC_INT v:floorCounter 2 OP_CONTROL_JUMP l:whileLessThan199 .label whileLessThan199End OP_SET_RET 4 v:mapDataArray OP_CONTROL_RET .endfunc