Auto Scroll eats player

User avatar
Posts: 99
Joined: Mon Sep 03, 2018 4:47 pm

Re: Auto Scroll eats player

Post by Raftronaut » Sun Jun 09, 2019 4:11 pm

Mugi wrote:
Fri Mar 29, 2019 9:23 am
boundshandlers are 4 scripts defined in script settings that define what actually happens when you touch screen edges.
removing those effectively makes the screen just wrap around itself, they should be loaded by default from Routines\Basic\ModuleScripts\MainScripts\BoundsHandlers\

Mugi! I am STILL struggling with this issue. Just got back into the project with the forums being up again. Found my bounds handler scripts in project settings. Here is the script for 'handle left bounds'. I am not sure what to look for as far indicators as to what is going wrong. Any thoughts??!?

Can the X coordinate be changed here to limit the access it has to get pulled into the seem of the left bounds?

Code: Select all

	LDA screenFlags
	AND #%00000010
	BEQ +
	;LDA screenFlags
	;AND #%00000100 ;; left bounds autoscrolling right
	;BEQ +
	LDA #$00
	STA Object_x_lo,x
	STA Object_h_speed_lo,x
	STA Object_h_speed_hi,x
	; for auto scrolling, use xScroll instead of xPrev? 
	;LDA xScroll
	LDA xPrev
	STA xHold_lo
	STA Object_x_hi,x
	STA xHold_hi
;	LDA xScroll_hi
;	STA Object_scroll,x
;	STA nt_hold

	JMP doneWithUpdateLeftScreen
	SBC Object_right,x
	SBC #$02

	STA xHold_hi
	STA newX
	STA Object_x_hi,x
	LDA Object_y_hi,x
	STA newY
		LDA #$00
	STA xHold_lo
	STA yHold_lo

;;; check if side triggers change screen...for instance, if hurt, wouldn't, and would instead return *solid*

	LDA Object_scroll,x
			sbc #$01
			STA Object_scroll,x
			STA currentNametable
			STA newScreen
			STA currentScreen ;currentScreen
			STA xScroll_hi
			adc #$01
			STA rightNametable
			SBC #$02
			STA leftNametable
			LDA Object_scroll,x
			AND #%00000001
			STA showingNametable
			LDA #$01
			STA screen_transition_type
		;LDA warpMap
			;ADC #$01
			;STA update_screen_details
			;;; update screen details will not change with left, right, up or down movement
			;;; unless the edge of a map should take you to the other map or something.
			;;; warpMap variable is used solely to hold whether the warp-out is to overworld or underworld.

	LDA #$01
	STA tile_solidity		
	LDA #$00
	STA gameHandler
		LDA #%11000000
				;7 = active
				;6 = 8 or 16 px tiles
			ORA #GS_MainGame
			ORA #%01000000
			STA update_screen

Last edited by Raftronaut on Mon Jun 10, 2019 7:16 pm, edited 1 time in total.
Post Reply