add town overworld

This commit is contained in:
Jeremy Penner 2019-03-13 20:43:38 -04:00
parent f16962f7f9
commit bddfcec05a
14 changed files with 44 additions and 16 deletions

BIN
game.jim

Binary file not shown.

View file

@ -94,8 +94,10 @@ defer player-touch ( x y -- b )
: try-move-entity ( e -- )
dup entity-dst check-entity-touch not if move-entity then ;
var queued-level
: queue-level queued-level ! ;
var q-level
var q-player.x
var q-player.y
: queue-level q-level ! q-player.y ! q-player.x ! ;
player :tick
0 ^LEFT key-down if drop 1 W player entity.dir ! then
@ -116,9 +118,10 @@ player :tick
' hello-world JOB send
then
tick-debounce
queued-level @ dup if
0 queue-level
q-level @ dup if
0 q-level !
loadlevel
q-player.x @ q-player.y @ tile>world player entity.pos!
else drop then ;
' mode-move MODE-MOVE !

View file

@ -22,6 +22,7 @@ s" game.jor" loadfile
intern pete.jor
intern petehous.jor
intern road.jor
:noname loadfile ; checkpoint _loadlevel
' _loadlevel ' loadlevel redefine

BIN
map.jim

Binary file not shown.

View file

@ -13,7 +13,7 @@ var tileselect
array tileflags
( grass ) WALKABLE b,
( dirt ) WALKABLE b,
( dirt ) WALKABLE DRIVABLE | b,
( water ) 0 b,
( pavement ) WALKABLE DRIVABLE | b,
( brick ) 0 b,
@ -29,6 +29,7 @@ array tileflags
( fridge ) 0 b,
( countertop ) 0 b,
( sink ) 0 b,
( house ) 0 b,
here tileflags - 1 - const MAXTILE
@ -47,7 +48,7 @@ here tileflags - 1 - const MAXTILE
MOUSEL mousedown if tileselect @ mousetile tile b! invalidate-map then
MOUSER clicked if
mouseworldpos world>tile
2dup tile b@ dup tileselect ! .
2dup tile b@ tileselect !
swap . . cr then ;
: copy-mapseg ( neww oldw y -- )

BIN
pete.jim

Binary file not shown.

View file

@ -12,13 +12,18 @@ car :touch
player.driving? not if car yield then
0 |; ' entities redefine
:| touch-begin S leaving? player.driving? not and dup if
pete say" It's too far to walk to town." then
touch-next 12 7 2= dup if
player.driving? not if
petehous.jor queue-level
then then
:| touch-begin S leaving? dup
if player.driving? not
if pete say" It's too far to walk to town."
else 5 10 road.jor queue-level
then
then
touch-next 13 8 2= player.driving? and dup
if 0 player.state DRIVING f!
12 8 tile>world player entity.pos!
then
touch-next 12 7 2= player.driving? not and dup
if 16 9 petehous.jor queue-level then
touch-last |; ' player-touch redefine
s" pete.map" load-map
; ' onload redefine

BIN
pete.map

Binary file not shown.

Binary file not shown.

View file

@ -2,11 +2,9 @@
:noname
reset-level
16 9 tile>world player entity.pos!
:|
touch-begin 16 10 2= dup if
12 8 tile>world player entity.pos!
pete.jor queue-level
12 8 pete.jor queue-level
then touch-next 9 4 2= dup if
pete say" The closet is a disaster.\I don't want to deal with that\right now."
then touch-next 11 4 2= dup if

BIN
road.jim Executable file

Binary file not shown.

20
road.jor Executable file
View file

@ -0,0 +1,20 @@
( O V E R W O R L D )
:noname
reset-level
1 player.state DRIVING f!
:|
touch-begin E leaving? dup
if pete say" It's 100 miles to the next town." then
touch-next 5 9 2= dup
if 13 12 pete.jor queue-level then
touch-next 13 6 2= dup
if pete say" Old hiking trail." then
touch-next 24 6 2= dup
if mary say" Welcome to my place, Pete!" then
touch-last |; ' player-touch redefine
s" road.map" load-map
; ' onload redefine

BIN
road.map Executable file

Binary file not shown.

BIN
tiles.tif

Binary file not shown.