'World of Palma; Exploration demo
'5/12/2021
'Collision checking OFF version
'Cobalt
Encounter_Group
AS _BYTE 'what types of creature encounters possible Is_Cave
AS _BYTE 'Covers all Cave-like locations
DIM SHARED AnimationOrder
(3, 8) '8 frames for sync between Waves\marsh and Shore animations
MFI_Loader "PS_Overworld_test.MFI"
'place the conveyor system in corect world location
CONST Conveyor_1_Pos_X
= 32 * 73 CONST Conveyor_1_Pos_Y
= 32 * 46 + 8 CONST Conveyor_2_Pos_X
= 32 * 70 + 8 CONST Conveyor_2_Pos_Y
= 32 * 49 CONST Conveyor_Frame_Speed
= 2 '--------------------------------------------------
DATA 0,1,2,3,4,4,1,0:
'shore animation order READ AnimationOrder
(1, i%%
) DATA 0,1,2,1:
'animation frame order
CONST Default_Key_Right
= 19712, Default_Key_Left
= 19200, Default_Key_Up
= 18432, Default_Key_Down
= 20480 CONST Default_A_Button
= 32, Default_B_Button
= 13, Default_Start_Button
= 65, Default_Select_Button
= 66 CONST down
= 0, up
= 1, right
= 2, left
= 3
Mapx% = 60
Mapy% = 40
P.Wx = 70
P.Wy = 45
Map_Loader_tiled_Base P.Wx, P.Wy, P.Tx, P.Ty 'Mapx%, Mapy%, Playrx%, Playry%
Place_Alis
frame% = frame% + 1
'-----------------Controls------------------
'--------------------------------------------
'----------------Movement--------------------
P.Ty = P.Ty + 2
IF (ABS(P.Ty
) MOD 32) = 0 THEN g.moving
= FALSE: P.Wy
= P.Wy
- 1: P.Ty
= 0 P.Ty = P.Ty - 2
IF (P.Ty
MOD 32) = 0 THEN g.moving
= FALSE: P.Wy
= P.Wy
+ 1: P.Ty
= 0 P.Tx = P.Tx + 2
IF (ABS(P.Tx
) MOD 32) = 0 THEN g.moving
= FALSE: P.Wx
= P.Wx
- 1: P.Tx
= 0 P.Tx = P.Tx - 2
IF (P.Tx
MOD 32) = 0 THEN g.moving
= FALSE: P.Wx
= P.Wx
+ 1: P.Tx
= 0 IF g.moving
THEN Ft%%
= Ft%%
+ 1 IF Ft%%
= 8 THEN P.Fr
= P.Fr
+ 1: Ft%%
= 0 'Correct for map wrap
'--------------------
SUB Map_Loader_tiled_Base
(X1%
, Y1%
, Sx%
, Sy%
) mx% = X1% + x%
my% = Y1% + y%
'------Adjust for map wrap around------
IF mx%
< 0 THEN mx%
= 128 + mx%
'use addition cause mx% is a negative IF mx%
> 127 THEN mx%
= mx%
- 128 IF my%
< 0 THEN my%
= 96 + my%
'use addition cause my% is a negative IF my%
> 95 THEN my%
= my%
- 96 '--------------------------------------
'main map tiles
_PUTIMAGE (Sx%
+ x%
* 32, Sy%
+ y%
* 32)-STEP(31, 31), TileX2&
, Temp&
, (0 + Map
(mx%
, my%
).Id
* 34, 0)-STEP(31, 31) 'animated map tiles
IF Map
(mx%
, my%
).Is_Animated
THEN _PUTIMAGE (Sx%
+ x%
* 32, Sy%
+ y%
* 32)-STEP(31, 31), MapAni&
, Temp&
, (544 + MainFrame
(1) * 34, 0)-STEP(31, 31) _PUTIMAGE (Sx%
+ x%
* 32, Sy%
+ y%
* 32)-STEP(31, 31), MapAni&
, Temp&
, (544 + (Map
(mx%
, my%
).Id
- 21) * 34, 34 + MainFrame
(1) * 34)-STEP(31, 31) _PUTIMAGE (Sx%
+ x%
* 32, Sy%
+ y%
* 32)-STEP(31, 31), MapAni&
, Temp&
, ((Map
(mx%
, my%
).Id
- 5) * 34, AnimationOrder
(1, MainFrame
(2)) * 34)-STEP(31, 31) 'Horizontal conveyor
_PUTIMAGE (Sx%
+ Conveyor_1_Pos_X
- (X1%
* 32), Sy%
+ Conveyor_1_Pos_Y
- (Y1%
* 32)), Conv&
, Temp&
, (0, 0 + (MainFrame
(0) * 34))-STEP(255, 31) 'vertical conveyor
_PUTIMAGE (Sx%
+ Conveyor_2_Pos_X
- (X1%
* 32), Sy%
+ Conveyor_2_Pos_Y
- (Y1%
* 32)), Conv&
, Temp&
, (257 + (MainFrame
(0) * 34), 0)-STEP(31, 223) SubFrame(i%%) = SubFrame(i%%) + 1
IF SubFrame
(0) = 5 + Conveyor_Frame_Speed
THEN MainFrame
(0) = MainFrame
(0) + Conveyor_Frame_Speed: SubFrame
(0) = 0 IF SubFrame
(1) = 16 THEN MainFrame
(1) = MainFrame
(1) + 1: SubFrame
(1) = 0 IF SubFrame
(2) = 24 THEN MainFrame
(2) = MainFrame
(2) + 1: SubFrame
(2) = 0 IF MainFrame
(0) = 8 THEN MainFrame
(0) = 0 IF MainFrame
(1) = 4 THEN MainFrame
(1) = 0 IF MainFrame
(2) = 8 THEN MainFrame
(2) = 0
' STATIC LastCount%
FPSC% = frame%
frame% = 0
_PUTIMAGE (290, 210)-STEP(31, 45), char&
, Temp&
, (0 + 17 * g.facing
, 120)-STEP(15, 22) _PUTIMAGE (290, 210)-STEP(31, 45), char&
, Temp&
, (68 + 51 * g.facing
+ AlisAnim
(P.Fr
) * 17, 120)-STEP(15, 22)
GET #1, , c~%%
'retrieve number of files FOffset&(I~%%) = FOffset&(I~%%) + 1
TileX2& = LoadGFX(FOffset(1), Size(1)) ' _LOADIMAGE("gfx\maps\PalmaTiles2x2.bmp", 32) '_NEWIMAGE(640, 480, 32)
Conv& = LoadGFX(FOffset(2), Size(2)) '_LOADIMAGE("gfx\maps\conveyoranim.bmp", 32) 'Conveyor
MapAni& = LoadGFX(FOffset(3), Size(3)) '_LOADIMAGE("gfx\maps\mapanimation.bmp", 32) 'Water, shore, and marsh frames
char& = LoadGFX(FOffset(4), Size(4)) '_LOADIMAGE("gfx\CharacterSheetC.png", 32) '
LoadData FOffset(5), Size(5)
SUB LoadData
(Foff&
, Size&
)
' OPEN "PhantasyStarPalma2.Dat" FOR BINARY AS #1
' CLOSE
REM '$include:'MFI_Loader2.bi'
FUNCTION LoadFFX&
(Foff&
, Size&
, Fize%%
) LoadFFX&
= _LOADFONT("temp.dat", Fize%%
, "monospace")