[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[adonthell-wastesedge-commits] Release_0-3-1 78eb33a 147/237: UPDATED sc
From: |
Kai Sterker |
Subject: |
[adonthell-wastesedge-commits] Release_0-3-1 78eb33a 147/237: UPDATED scripts to make use of the new win_manager features |
Date: |
Mon, 25 Jul 2016 18:15:07 +0000 (UTC) |
tag: Release_0-3-1
commit 78eb33acf170a4f8e78b09a1c8466d80d9499f4e
Author: adondev <adondev>
Commit: adondev <adondev>
UPDATED scripts to make use of the new win_manager features
---
mapengine.data | Bin 4067 -> 4341 bytes
scripts/actions/talk.py | 6 +-
scripts/events/open_inn_door.py | 4 +-
scripts/init.py | 194 ++++++++++----------
scripts/modules/character_screen.py | 14 +-
scripts/modules/events.py | 36 +---
scripts/modules/intro.py | 2 +-
scripts/modules/main_menu.py | 124 ++++++-------
scripts/schedules/mapcharacters/intro.py | 14 +-
.../schedules/mapcharacters/keyboard_control.py | 98 +++++-----
scripts/schedules/mapcharacters/orloth.py | 69 +++----
11 files changed, 247 insertions(+), 314 deletions(-)
diff --git a/mapengine.data b/mapengine.data
index c84f158..abf8ec3 100755
Binary files a/mapengine.data and b/mapengine.data differ
diff --git a/scripts/actions/talk.py b/scripts/actions/talk.py
index 8546176..b964741 100755
--- a/scripts/actions/talk.py
+++ b/scripts/actions/talk.py
@@ -32,7 +32,7 @@ class talk:
requester.set_schedule_active (0)
# -- look into the player's face
- self.myself.look_invert(requester.currentmove())
+ self.myself.look_invert (requester.currentmove ())
# -- init the dialogue engine
dlg = adonthell.dialog_screen (self.myself,
self.myself.get_dialogue (), 0)
@@ -44,8 +44,8 @@ class talk:
dlg.py_signal_connect (self.restore_schedule,
adonthell.win_event_CLOSE, (requester, self.myself))
# -- add the dialogue window to the win_manager
- adonthell.win_manager_add (dlg)
- adonthell.win_manager_set_focus (dlg)
+ adonthell.win_manager_get_active ().add (dlg)
+ adonthell.win_manager_get_active ().set_focus (dlg)
# -- start the dialogue
dlg.run ()
diff --git a/scripts/events/open_inn_door.py b/scripts/events/open_inn_door.py
index ca0c4bd..d9e8f43 100755
--- a/scripts/events/open_inn_door.py
+++ b/scripts/events/open_inn_door.py
@@ -20,5 +20,5 @@ class open_inn_door:
pass
def run (self, submap, x, y, dir, name):
- adonthell.gamedata_map_engine ().get_landmap ().get_mapobject (0).\
- get_animation (0).next_frame ()
+ adonthell.gamedata_engine ().get_landmap ().get_mapobject (0).\
+ get_animation (0).next_frame ()
diff --git a/scripts/init.py b/scripts/init.py
index 3a111cc..1cdab4e 100755
--- a/scripts/init.py
+++ b/scripts/init.py
@@ -79,21 +79,17 @@ class title_screen:
self.draw_func = self.initial_fade_in
self.alpha = 0
- self.retval = 1
-
- # -- let the win_manager handle everything
- win_manager_add (self.window)
- win_manager_set_focus (self.window)
audio_play_background (0)
- # -- launch the mapengine
+ # -- launch the engine
gametime_start_action ()
- gamedata_map_engine ().set_should_update_map (0)
- gamedata_map_engine ().run ()
+ gamedata_engine ().main (self.window, "title_sequence")
+
def __del__ (self):
print "Destructor called"
+ gamedata_engine ().main_quit ()
# -- catch ESC key
def on_update (self):
@@ -107,7 +103,8 @@ class title_screen:
self.draw_func = None
self.show_menu (1, 0)
- return self.retval
+ # return self.retval
+ return 1
# -- callback for drawing operations
def on_draw (self):
@@ -124,7 +121,7 @@ class title_screen:
else:
# -- fade in
- self.alpha = self.alpha + gametime_frames_to_do()
+ self.alpha = self.alpha + gametime_frames_to_skip()
if self.alpha > 255: self.alpha = 255
self.bag_c.set_alpha (self.alpha)
@@ -154,53 +151,57 @@ class title_screen:
else:
# -- fade in
- self.alpha = self.alpha + gametime_frames_to_do()
+ self.alpha = self.alpha + gametime_frames_to_skip()
if self.alpha > 255: self.alpha = 255
self.bag_o.set_alpha (self.alpha)
# -- Show the main menu
def show_menu (self, a, b):
- self.menu = main_menu (a, b)
- self.menu.thisown = C
- self.menu.py_signal_connect (self.on_menu_close, win_event_CLOSE)
+ menu = main_menu (a, b)
+
+ # -- open the menu
+ gamedata_engine ().main (menu, "game_menu")
+
+ # -- once the menu is closed, see what we got
+ retval = menu.get_result ()
+ print "Main menu closed with retval", retval
- win_manager_add (self.menu)
- win_manager_set_focus (self.menu)
-
- # -- on to the main menu
- def on_menu_close (self, retval):
audio_pause_music ()
audio_unload_background (0)
- if retval < 5:
- gamedata_map_engine ().set_should_update_map (1)
-
- # -- start new game
- if retval == 1:
- gamedata_map_engine ().fade_out ()
- self.cleanup ()
-
- gamedata_load_characters (0)
- gamedata_load_quests (0)
-
- # let the player chose a name for his character
- from character_screen import *
- self.cs = character_screen ()
- self.cs.thisown = C
- self.cs.py_signal_connect (self.on_cs_close, win_event_CLOSE)
-
- win_manager_add (self.cs)
- win_manager_set_focus (self.cs)
- # -- Load game
- else:
- self.cleanup ()
- gamedata_map_engine ().fade_in ()
-
+
+ # -- start new game
+ if retval == 1:
+ # -- let the player chose a name for his character
+ from character_screen import *
+ cs = character_screen ()
+ gamedata_engine ().main (cs, "character_screen")
+
+ gamedata_engine ().fade_out ()
+ self.cleanup ()
+
+ # -- load the initial game
+ gamedata_load (0)
+ # gamedata_load_characters (0)
+ # gamedata_load_quests (0)
+ adonthell.gamedata_player ().rename (cs.name)
+
+ # -- on to the intro
+ self.play_intro ()
+
+ # -- Load game
+ elif retval == 2:
+ self.window.set_visible (0)
+ self.cleanup ()
+ gamedata_engine ().mapview_start ()
+ gamedata_engine ().fade_in ()
+
+ # -- quit the game
else:
- gamedata_map_engine ().quit ()
+ gamedata_engine ().main_quit ()
# -- cleanup
def cleanup (self):
- win_manager_remove (self.window)
+ win_manager_get_active ().remove (self.window)
self.window.remove (self.bag_o)
self.window.remove (self.bag_c)
@@ -210,30 +211,28 @@ class title_screen:
del self.bag_c
del self.bag_t
- self.retval = 0
audio_pause_music ()
audio_unload_background (0)
- screen_display.fillrect (0, 0, 320, 240, 0)
- screen_show ()
- def on_cs_close (self, retval):
+ def play_intro (self):
# Launches the intro
import intro
# Creates the map engine context for the game start
- gamedata_map_engine ().load_map ("test.map")
- lm = gamedata_map_engine ().get_landmap ()
-
- the_player = gamedata_player ()
-
- the_player.set_val ("gender", MALE)
- the_player.set_val ("race", HALFELF)
- the_player.load ("player.mchar")
- the_player.set_map (lm)
- the_player.jump_to (0, 11, 18, STAND_EAST)
- the_player.set_schedule ("keyboard_control")
- gamedata_map_engine ().set_mapview_schedule ("center_character",
(the_player.get_name (),))
+ lm = gamedata_engine ().get_landmap ()
+ # lm.load ("test.map")
+
+ player = gamedata_player ()
+ player.set_val ("gender", MALE)
+ player.set_val ("race", HALFELF)
+ player.load ("player.mchar")
+ player.set_map (lm)
+ player.jump_to (0, 4, 18)
+ player.stand_east ()
+ player.set_schedule ("intro")
+
+ gamedata_engine ().set_mapview_schedule ("center_character",
(player.get_name (),))
# Setting up the map events
# Teleport events
@@ -704,7 +703,7 @@ class title_screen:
ev.x = 10
ev.y = 2
ev.dir = STAND_NORTH
- ev.set_script ("character_speak", (the_player.get_name (), \
+ ev.set_script ("character_speak", (player.get_name (), \
"That clock seems to be late!"))
lm.add_event (ev)
@@ -714,7 +713,7 @@ class title_screen:
ev.x = 3
ev.y = 6
ev.dir = STAND_NORTH
- ev.set_script ("character_speak", (the_player.get_name (), \
+ ev.set_script ("character_speak", (player.get_name (), \
"I'd better not touch this... What
if it explodes??"))
lm.add_event (ev)
@@ -724,7 +723,7 @@ class title_screen:
ev.x = 4
ev.y = 6
ev.dir = STAND_NORTH
- ev.set_script ("character_speak", (the_player.get_name (), \
+ ev.set_script ("character_speak", (player.get_name (), \
"I'd better not touch this... What
if it explodes??"))
lm.add_event (ev)
@@ -734,7 +733,7 @@ class title_screen:
ev.x = 2
ev.y = 5
ev.dir = STAND_EAST
- ev.set_script ("character_speak", (the_player.get_name (), \
+ ev.set_script ("character_speak", (player.get_name (), \
"I'd better not touch this... What
if it explodes??"))
lm.add_event (ev)
@@ -744,7 +743,7 @@ class title_screen:
ev.x = 5
ev.y = 5
ev.dir = STAND_WEST
- ev.set_script ("character_speak", (the_player.get_name (), \
+ ev.set_script ("character_speak", (player.get_name (), \
"I'd better not touch this... What
if it explodes??"))
lm.add_event (ev)
@@ -754,7 +753,7 @@ class title_screen:
ev.x = 3
ev.y = 4
ev.dir = STAND_SOUTH
- ev.set_script ("character_speak", (the_player.get_name (), \
+ ev.set_script ("character_speak", (player.get_name (), \
"I'd better not touch this... What
if it explodes??"))
lm.add_event (ev)
@@ -764,7 +763,7 @@ class title_screen:
ev.x = 4
ev.y = 4
ev.dir = STAND_SOUTH
- ev.set_script ("character_speak", (the_player.get_name (), \
+ ev.set_script ("character_speak", (player.get_name (), \
"I'd better not touch this... What
if it explodes??"))
lm.add_event (ev)
@@ -774,7 +773,7 @@ class title_screen:
ev.x = 6
ev.y = 17
ev.dir = STAND_WEST
- ev.set_script ("character_speak", (the_player.get_name (), \
+ ev.set_script ("character_speak", (player.get_name (), \
"Closed. We are all imprisoned
here..."))
lm.add_event (ev)
@@ -784,7 +783,7 @@ class title_screen:
ev.x = 6
ev.y = 18
ev.dir = STAND_WEST
- ev.set_script ("character_speak", (the_player.get_name (), \
+ ev.set_script ("character_speak", (player.get_name (), \
"Closed. We are all imprisoned
here..."))
lm.add_event (ev)
@@ -794,7 +793,7 @@ class title_screen:
ev.x = 6
ev.y = 19
ev.dir = STAND_WEST
- ev.set_script ("character_speak", (the_player.get_name (), \
+ ev.set_script ("character_speak", (player.get_name (), \
"Closed. We are all imprisoned
here..."))
lm.add_event (ev)
@@ -804,7 +803,7 @@ class title_screen:
ev.x = 1
ev.y = 6
ev.dir = STAND_NORTH
- ev.set_script ("character_speak", (the_player.get_name (), \
+ ev.set_script ("character_speak", (player.get_name (), \
"It's locked."))
lm.add_event (ev)
@@ -814,7 +813,7 @@ class title_screen:
ev.x = 2
ev.y = 5
ev.dir = STAND_NORTH
- ev.set_script ("character_speak", (the_player.get_name (), \
+ ev.set_script ("character_speak", (player.get_name (), \
"It's locked."))
lm.add_event (ev)
@@ -824,7 +823,7 @@ class title_screen:
ev.x = 6
ev.y = 4
ev.dir = STAND_NORTH
- ev.set_script ("character_speak", (the_player.get_name (), \
+ ev.set_script ("character_speak", (player.get_name (), \
"It's locked."))
lm.add_event (ev)
@@ -834,7 +833,7 @@ class title_screen:
ev.x = 6
ev.y = 8
ev.dir = STAND_NORTH
- ev.set_script ("character_speak", (the_player.get_name (), \
+ ev.set_script ("character_speak", (player.get_name (), \
"It's locked."))
lm.add_event (ev)
@@ -844,7 +843,7 @@ class title_screen:
ev.x = 1
ev.y = 4
ev.dir = STAND_NORTH
- ev.set_script ("character_speak", (the_player.get_name (), \
+ ev.set_script ("character_speak", (player.get_name (), \
"It's locked."))
lm.add_event (ev)
@@ -854,7 +853,7 @@ class title_screen:
ev.x = 7
ev.y = 3
ev.dir = STAND_NORTH
- ev.set_script ("character_speak", (the_player.get_name (), \
+ ev.set_script ("character_speak", (player.get_name (), \
"I doubt Master Fingolson would be
happy if I go through his things..."))
lm.add_event (ev)
@@ -864,21 +863,16 @@ class title_screen:
ev.x = 1
ev.y = 6
ev.dir = STAND_NORTH
- ev.set_script ("character_speak", (the_player.get_name (), \
+ ev.set_script ("character_speak", (player.get_name (), \
"Well, I can't dig into my
mistress' shelf!"))
lm.add_event (ev)
# Now setup the characters
- player = gamedata_player ()
- player.jump_to (0, 4, 18)
- player.stand_east ()
- player.set_schedule ("intro")
-
lucia = gamedata_get_character ("Lucia Redwyne")
lucia.set_dialogue ("dialogues/lucia_start")
lucia.load ("lucia.mchar")
- lucia.set_map (gamedata_map_engine ().get_landmap ())
+ lucia.set_map (gamedata_engine ().get_landmap ())
lucia.jump_to (3, 4, 3)
lucia.set_action ("talk")
lucia.set_schedule ("lucia")
@@ -888,7 +882,7 @@ class title_screen:
orloth = gamedata_get_character ("Orloth Redwyne")
orloth.set_dialogue ("dialogues/orloth_start")
orloth.load ("orloth.mchar")
- orloth.set_map (gamedata_map_engine ().get_landmap ())
+ orloth.set_map (gamedata_engine ().get_landmap ())
orloth.jump_to (1, 2, 2)
orloth.set_action ("talk")
orloth.stand_south ()
@@ -898,7 +892,7 @@ class title_screen:
erek = gamedata_get_character ("Erek Stonebreaker")
erek.set_dialogue ("dialogues/erek_start")
erek.load ("erek.mchar")
- erek.set_map (gamedata_map_engine ().get_landmap ())
+ erek.set_map (gamedata_engine ().get_landmap ())
erek.jump_to (1, 5, 5)
erek.set_action ("talk")
erek.stand_north ()
@@ -910,7 +904,7 @@ class title_screen:
talan = gamedata_get_character ("Talan Wendth")
talan.set_dialogue ("dialogues/demo_intro_1")
talan.load ("talan.mchar")
- talan.set_map (gamedata_map_engine ().get_landmap ())
+ talan.set_map (gamedata_engine ().get_landmap ())
talan.jump_to (0, 7, 17)
talan.set_action ("talk")
talan.stand_west ()
@@ -920,7 +914,7 @@ class title_screen:
jelom = gamedata_get_character ("Jelom Rasgar")
jelom.set_dialogue ("dialogues/jelom_start")
jelom.load ("jelom.mchar")
- jelom.set_map (gamedata_map_engine ().get_landmap ())
+ jelom.set_map (gamedata_engine ().get_landmap ())
jelom.jump_to (9, 2, 6)
jelom.set_action ("talk")
jelom.stand_north ()
@@ -930,7 +924,7 @@ class title_screen:
alek = gamedata_get_character ("Alek Endhelm")
alek.set_dialogue ("dialogues/alek_start")
alek.load ("alek.mchar")
- alek.set_map (gamedata_map_engine ().get_landmap ())
+ alek.set_map (gamedata_engine ().get_landmap ())
alek.jump_to (1, 1, 3)
alek.set_action ("talk")
alek.stand_south ()
@@ -940,7 +934,7 @@ class title_screen:
oliver = gamedata_get_character ("Oliver Redwyne")
oliver.set_dialogue ("dialogues/oliver_start")
oliver.load ("oliver.mchar")
- oliver.set_map (gamedata_map_engine ().get_landmap ())
+ oliver.set_map (gamedata_engine ().get_landmap ())
oliver.jump_to (0, 25, 15)
oliver.set_action ("talk")
oliver.stand_west ()
@@ -950,7 +944,7 @@ class title_screen:
frostbloom = gamedata_get_character ("Rhayne Frostbloom")
frostbloom.set_dialogue ("dialogues/frostbloom_start")
frostbloom.load ("frostbloom.mchar")
- frostbloom.set_map (gamedata_map_engine ().get_landmap ())
+ frostbloom.set_map (gamedata_engine ().get_landmap ())
frostbloom.jump_to (0, 18, 22)
frostbloom.set_action ("talk")
frostbloom.stand_north ()
@@ -960,7 +954,7 @@ class title_screen:
bjarn = gamedata_get_character ("Bjarn Fingolson")
bjarn.set_dialogue ("dialogues/bjarn_start")
bjarn.load ("bjarn.mchar")
- bjarn.set_map (gamedata_map_engine ().get_landmap ())
+ bjarn.set_map (gamedata_engine ().get_landmap ())
bjarn.jump_to (7, 3, 6)
bjarn.set_action ("talk")
bjarn.stand_west ()
@@ -969,7 +963,7 @@ class title_screen:
silverhair = gamedata_get_character ("Imoen Silverhair")
silverhair.load ("silverhair.mchar")
- silverhair.set_map (gamedata_map_engine ().get_landmap ())
+ silverhair.set_map (gamedata_engine ().get_landmap ())
silverhair.jump_to (13, 4, 4)
silverhair.set_action ("talk")
silverhair.stand_south ()
@@ -979,7 +973,7 @@ class title_screen:
sarin = gamedata_get_character ("Sarin Trailfollower")
sarin.set_dialogue ("dialogues/sarin_start")
sarin.load ("servant2.mchar")
- sarin.set_map (gamedata_map_engine ().get_landmap ())
+ sarin.set_map (gamedata_engine ().get_landmap ())
sarin.jump_to (13, 5, 3)
sarin.set_action ("talk")
sarin.stand_west ()
@@ -989,7 +983,7 @@ class title_screen:
janesta = gamedata_get_character ("Janesta Skywind")
janesta.set_dialogue ("dialogues/janesta_start")
janesta.load ("servant1.mchar")
- janesta.set_map (gamedata_map_engine ().get_landmap ())
+ janesta.set_map (gamedata_engine ().get_landmap ())
janesta.jump_to (13, 6, 3)
janesta.set_action ("talk")
janesta.stand_north ()
@@ -999,7 +993,7 @@ class title_screen:
fellnir = gamedata_get_character ("Fellnir Kezular")
fellnir.set_dialogue ("dialogues/fellnir_start")
fellnir.load ("fellnir.mchar")
- fellnir.set_map (gamedata_map_engine ().get_landmap ())
+ fellnir.set_map (gamedata_engine ().get_landmap ())
fellnir.jump_to (10, 4, 4)
fellnir.set_action ("talk")
fellnir.stand_south ()
@@ -1009,7 +1003,7 @@ class title_screen:
tristan = gamedata_get_character ("Tristan Illig")
tristan.set_dialogue ("dialogues/tristan_start")
tristan.load ("illig.mchar")
- tristan.set_map (gamedata_map_engine ().get_landmap ())
+ tristan.set_map (gamedata_engine ().get_landmap ())
tristan.jump_to (1, 4, 6)
tristan.set_action ("talk")
tristan.stand_west ()
@@ -1019,9 +1013,11 @@ class title_screen:
# Once we want to generate the data context files,
# just call gamedata::save (1) and copy the .data files
# to the game's root directory.
-
+
+ # -- start the mapengine
+ gamedata_engine ().mapview_start ()
gametime_update ()
- gamedata_map_engine ().fade_in ()
+ gamedata_engine ().fade_in ()
# -- Main --
title = title_screen ()
diff --git a/scripts/modules/character_screen.py
b/scripts/modules/character_screen.py
index 7a67465..7508bc0 100644
--- a/scripts/modules/character_screen.py
+++ b/scripts/modules/character_screen.py
@@ -21,11 +21,6 @@ class character_screen (adonthell.win_container):
def __init__(self):
adonthell.win_container.__init__(self)
- self.thisown = 0
- self.quit = 1
-
- self.py_signal_connect (self.on_destroy, adonthell.win_event_DESTROY)
-
# -- get font and theme
self.font = adonthell.win_manager_get_font ("original")
self.theme = adonthell.win_manager_get_theme ("original")
@@ -82,10 +77,5 @@ class character_screen (adonthell.win_container):
# -- callback for accepting name
def on_enter (self):
- name = self.entry.text_char ()
- adonthell.gamedata_player ().rename (name)
- self.quit = 0
-
- # -- callback to close the window
- def on_destroy (self):
- return self.quit
+ self.name = self.entry.text_char ()
+ adonthell.gamedata_engine ().main_quit ()
diff --git a/scripts/modules/events.py b/scripts/modules/events.py
index 02efab6..60b5d6e 100755
--- a/scripts/modules/events.py
+++ b/scripts/modules/events.py
@@ -12,35 +12,10 @@
import adonthell
-# -- Fade the screen out
-def fade_out ():
- i = 0
-
- while i < 60:
- adonthell.gamedata_map_engine ().mainloop ()
-
- adonthell.screen_transition (i * 2)
- adonthell.screen_show ()
-
- adonthell.gametime_update ()
- i = i + (adonthell.gametime_frames_to_do () * 2)
-
-# -- Fade the screen in
-def fade_in ():
- i = 60
-
- while i > 0:
- adonthell.gamedata_map_engine ().mainloop ()
-
- adonthell.screen_transition(i * 2)
- adonthell.screen_show ()
-
- adonthell.gametime_update ()
- i = i - (adonthell.gametime_frames_to_do () * 2)
-
# -- switch submaps (character, new coordinates, new submap,
# direction the character shall face)
def switch_submap (mychar, x, y, submap, dir):
+ # -- deactivate schedule during teleport
if mychar.is_schedule_activated ():
mychar.set_schedule_active (0)
schedule_active = 1
@@ -49,14 +24,13 @@ def switch_submap (mychar, x, y, submap, dir):
# -- comparing mychar and player directly does not work (???)
if mychar.get_name () == adonthell.gamedata_player ().get_name ():
- mychar.set_schedule_active (0)
- mychar.stand ()
- fade_out ()
+ # -- fade the new submap in if we teleport the player
+ adonthell.gamedata_engine ().fade_out ()
mychar.jump_to (x, y, submap, dir)
- fade_in ()
- mychar.set_schedule_active (1)
+ adonthell.gamedata_engine ().fade_in ()
else:
mychar.jump_to (x, y, submap, dir)
+ # -- restore character's schedule
if schedule_active == 1:
mychar.set_schedule_active (1)
diff --git a/scripts/modules/intro.py b/scripts/modules/intro.py
index b56e107..91a4020 100644
--- a/scripts/modules/intro.py
+++ b/scripts/modules/intro.py
@@ -131,7 +131,7 @@ audio_play_background (0)
while not input_has_been_pushed (SDLK_ESCAPE) and not input_has_been_pushed
(SDLK_SPACE) and not letsexit:
# Update the stuff
input_update ()
- for i in range (0, gametime_frames_to_do ()):
+ for i in range (0, gametime_frames_to_skip ()):
# 1st part: forest scrolling and fade to the inn, with
#the text appearing letter-by-letter
diff --git a/scripts/modules/main_menu.py b/scripts/modules/main_menu.py
index 072c5ae..b0345a9 100755
--- a/scripts/modules/main_menu.py
+++ b/scripts/modules/main_menu.py
@@ -24,27 +24,20 @@ class main_menu (win_container):
def __init__ (self, startup, enable_s, enable_b = 0):
win_container.__init__(self)
- # Init Position
- self.move (0,0)
- self.resize(320,240)
+ # -- Init Position
+ self.move (0, 0)
+ self.resize (320, 240)
- self.thisown = 0
-
- # load font and theme
+ # -- load font and theme
self.font = win_manager_get_font ("original")
self.theme = win_manager_get_theme ("original")
self.enable_save = enable_s
self.enable_b = enable_b
- self.lg = None
-
- self.quit = 1
-
y_pos = 30
if enable_s: y_pos = 15
- self.py_signal_connect (self.on_destroy, win_event_DESTROY)
self.py_signal_connect (self.on_update, win_event_UPDATE)
self.a_title = win_image()
@@ -119,7 +112,6 @@ class main_menu (win_container):
for label in self.labels:
self.add (label)
- # activate self object
self.set_activate (1)
self.set_visible_all (1)
@@ -140,6 +132,8 @@ class main_menu (win_container):
label.move ((self.length()-label.length())/2, label.y ())
self.add_to_select ()
+
+ # -- make the menu options available for selecting
def add_to_select (self):
self.select = win_select()
self.select.move (70,10)
@@ -175,77 +169,67 @@ class main_menu (win_container):
self.add (self.title)
self.set_visible_all (1)
- # -- Callback to close the window
- def on_destroy (self):
- if self.quit == 0:
- print "Closing Main Menu ..."
- return self.quit
- # -- pressing ESC will close the menu if it's open
+ # -- after closing the menu, this returns the selected option
+ def get_result (self):
+ return self.retval
+
+
+ # -- callback for custom updating
def on_update (self):
+ # -- slide in the menu options
if self.startup > 0:
- self.startup = self.create_menu (self.moves, self.goals)
-
- if self.startup == 0:
+ if self.create_menu (self.moves, self.goals) == 0:
self.add_to_select ()
-
- elif self.lg == None:
- if input_has_been_pushed (SDLK_ESCAPE):
- self.quit = 0
- # If we're on the title screen, then leave.
- if self.enable_save == 0:
- self.set_return_code (5)
+ self.startup = 0
+
+ # -- pressing ESC will close the menu if it's open
+ if input_has_been_pushed (SDLK_ESCAPE):
+ # -- If we're on the title screen, then exit the game
+ if self.enable_save == 0: self.retval = 5
+ else: self.retval = 0
+ gamedata_engine ().main_quit ()
+
# -- Callback to get informed of the player's choice
def on_select (self):
- sel = self.select.get_selected_position ()
+ self.retval = self.select.get_selected_position ()
- if self.enable_save == 0 and sel > 2:
- sel = sel + 1
-
- self.set_return_code (sel)
+ # -- skip save option on title screen
+ if self.enable_save == 0 and self.retval > 2:
+ self.retval = self.retval + 1
- # New Game
- if sel == 1:
- self.quit = 0
-
- # Load Game
- elif sel == 2:
- self.lg = data_screen (LOAD_SCREEN)
- self.lg.thisown = 0
- self.lg.set_activate (1)
- if self.startup != 0:
- # In game
- self.lg.py_signal_connect (self.on_ingame_data_close,
win_event_CLOSE)
+ # -- Load Game
+ if self.retval == 2:
+ lg = data_screen (LOAD_SCREEN)
+ lg.set_activate (1)
+
+ # -- hide the game menu if we are not on the title screen
+ if self.enable_save == 1:
self.set_visible (0)
- else:
- # Title screen
- self.lg.py_signal_connect (self.on_data_close, win_event_CLOSE)
- win_manager_add (self.lg)
- win_manager_set_focus (self.lg)
-
- # Save Game
- elif sel == 3:
- self.lg = data_screen (SAVE_SCREEN)
- self.lg.thisown = 0
- self.lg.set_activate(1)
- self.lg.py_signal_connect (self.on_ingame_data_close,
win_event_CLOSE)
+
+ # -- open the Load screen
+ gamedata_engine ().main (lg, "load_screen")
+
+ # -- if we are on the title screen, only close the
+ # game menu if a game has been loaded
+ if self.enable_save == 0 and lg.get_result () == 0:
+ return
+
+ # -- Save Game
+ elif self.retval == 3:
+ lg = data_screen (SAVE_SCREEN)
+ lg.set_activate (1)
+
+ # -- hide the game menu
self.set_visible (0)
- win_manager_add (self.lg)
- win_manager_set_focus (self.lg)
-
- # Quit
- elif sel == 5:
- self.quit = 0
+
+ # -- open the Load screen
+ gamedata_engine ().main (lg, "save_screen")
- def on_data_close (self, retval):
- self.lg = None
- if retval == 1:
- self.quit = 0
+ # -- close the main menu
+ gamedata_engine ().main_quit ()
- def on_ingame_data_close (self, retval):
- self.lg = None
- self.quit = 0
# -- Scrolls the different menu options into view
def create_menu (self, moves, goals):
diff --git a/scripts/schedules/mapcharacters/intro.py
b/scripts/schedules/mapcharacters/intro.py
index cc2fb4c..385966e 100644
--- a/scripts/schedules/mapcharacters/intro.py
+++ b/scripts/schedules/mapcharacters/intro.py
@@ -1,4 +1,6 @@
#
+# $Id$
+#
# (C) Copyright 2001 Kai Sterker <address@hidden>
# Part of the Adonthell Project http://adonthell.linuxgames.com
#
@@ -51,8 +53,8 @@ class intro:
# -- Opens the gate
def open_gate (self):
# Get the mapobjects
- gate_fore = adonthell.gamedata_map_engine ().get_landmap
().get_mapobject (90)
- gate_back = adonthell.gamedata_map_engine ().get_landmap
().get_mapobject (89)
+ gate_fore = adonthell.gamedata_engine ().get_landmap ().get_mapobject
(90)
+ gate_back = adonthell.gamedata_engine ().get_landmap ().get_mapobject
(89)
# Only open the gate if it's closed...
if (gate_fore.get_animation (0).currentframe () == 0):
@@ -62,7 +64,7 @@ class intro:
gate_fore.get_animation (0).next_frame ()
# Update squares walkability
- sm = adonthell.gamedata_map_engine ().get_landmap ().get_submap (0)
+ sm = adonthell.gamedata_engine ().get_landmap ().get_submap (0)
sm.get_square (6, 17).set_walkable_south (0)
sm.get_square (7, 17).set_walkable_south (0)
sm.get_square (6, 18).set_walkable_west (1)
@@ -71,8 +73,8 @@ class intro:
# Close the gate
def close_gate (self):
# Get the mapobjects
- gate_fore = adonthell.gamedata_map_engine ().get_landmap
().get_mapobject (90)
- gate_back = adonthell.gamedata_map_engine ().get_landmap
().get_mapobject (89)
+ gate_fore = adonthell.gamedata_engine ().get_landmap ().get_mapobject
(90)
+ gate_back = adonthell.gamedata_engine ().get_landmap ().get_mapobject
(89)
# Only close the gate if it's opened
if (gate_fore.get_animation (0).currentframe () == 4):
@@ -82,7 +84,7 @@ class intro:
gate_fore.get_animation (0).next_frame ()
# Update squares walkability
- sm = adonthell.gamedata_map_engine ().get_landmap ().get_submap (0)
+ sm = adonthell.gamedata_engine ().get_landmap ().get_submap (0)
sm.get_square (6, 17).set_walkable_south (1)
sm.get_square (7, 17).set_walkable_south (1)
sm.get_square (6, 18).set_walkable_west (0)
diff --git a/scripts/schedules/mapcharacters/keyboard_control.py
b/scripts/schedules/mapcharacters/keyboard_control.py
index a60e0e1..9a28a88 100755
--- a/scripts/schedules/mapcharacters/keyboard_control.py
+++ b/scripts/schedules/mapcharacters/keyboard_control.py
@@ -5,23 +5,11 @@ class keyboard_control:
def __init__ (self, mapcharinstance):
self.myself = mapcharinstance
- # -- When the menu is closing, react accordingly
- def on_menu_close (self, retval, player):
- # Tells the map engine to update the map
- gamedata_map_engine ().set_should_update_map (1)
- # -- Quit was selected, so that's what we do :)
- if retval == 5:
- gamedata_map_engine ().quit ()
-
- # Reactivate map update when data_screen closed
- def on_data_screen_close (self, retval):
- gamedata_map_engine ().set_should_update_map (1)
-
# Opens the gate
def open_gate (self):
# Get the mapobjects
- gate_fore = gamedata_map_engine ().get_landmap ().get_mapobject (90)
- gate_back = gamedata_map_engine ().get_landmap ().get_mapobject (89)
+ gate_fore = gamedata_engine ().get_landmap ().get_mapobject (90)
+ gate_back = gamedata_engine ().get_landmap ().get_mapobject (89)
# Only open the gate if it's closed...
if (gate_fore.get_animation (0).currentframe () == 0):
@@ -31,7 +19,7 @@ class keyboard_control:
gate_fore.get_animation (0).next_frame ()
# Update squares walkability
- sm = gamedata_map_engine ().get_landmap ().get_submap (0)
+ sm = gamedata_engine ().get_landmap ().get_submap (0)
sm.get_square (6, 17).set_walkable_south (0)
sm.get_square (7, 17).set_walkable_south (0)
sm.get_square (6, 18).set_walkable_west (1)
@@ -40,8 +28,8 @@ class keyboard_control:
# Close the gate
def close_gate (self):
# Get the mapobjects
- gate_fore = gamedata_map_engine ().get_landmap ().get_mapobject (90)
- gate_back = gamedata_map_engine ().get_landmap ().get_mapobject (89)
+ gate_fore = gamedata_engine ().get_landmap ().get_mapobject (90)
+ gate_back = gamedata_engine ().get_landmap ().get_mapobject (89)
# Only close the gate if it's opened
if (gate_fore.get_animation (0).currentframe () == 4):
@@ -51,7 +39,7 @@ class keyboard_control:
gate_fore.get_animation (0).next_frame ()
# Update squares walkability
- sm = gamedata_map_engine ().get_landmap ().get_submap (0)
+ sm = gamedata_engine ().get_landmap ().get_submap (0)
sm.get_square (6, 17).set_walkable_south (1)
sm.get_square (7, 17).set_walkable_south (1)
sm.get_square (6, 18).set_walkable_west (0)
@@ -60,18 +48,6 @@ class keyboard_control:
def run (self):
- if input_has_been_pushed (SDLK_h):
- gamedata_map_engine ().set_mapview_schedule ("center_character",
- ("Talan Wendth",))
- gamedata_player ().set_schedule ("")
- gamedata_get_character ("Talan Wendth").set_schedule
("keyboard_control")
-
- if input_has_been_pushed (SDLK_g):
- gamedata_map_engine ().set_mapview_schedule ("center_character",
- (gamedata_player
().get_name (),))
- gamedata_player ().set_schedule ("keyboard_control")
- gamedata_get_character ("Talan Wendth").set_schedule ("talan")
-
if input_has_been_pushed (SDLK_o):
self.open_gate ()
@@ -84,12 +60,14 @@ class keyboard_control:
p = self.myself.whosnext ()
# - Yes :)
- if p != None and p.currentmove() < WALK_NORTH:
+ if p != None and p.currentmove () < WALK_NORTH:
# -- launch the other guy's (object's) action script
p.launch_action (self.myself)
# -- Cleanup
p = None
+
+ # -- otherwise launch an action event
elif p == None:
evt = action_event ()
evt.submap = self.myself.submap ()
@@ -103,19 +81,23 @@ class keyboard_control:
elif input_has_been_pushed (SDLK_ESCAPE):
import main_menu
- # -- open main menu without animation, with saving and background
enabled
+ # -- create main menu without animation, with saving and
background enabled
menu = main_menu.main_menu (1, 1, 1)
- menu.thisown = C
-
- # Stop updating the map
- gamedata_map_engine ().set_should_update_map (0)
- # -- this tells us when the main menu is closed
- menu.py_signal_connect (self.on_menu_close, win_event_CLOSE,
(self.myself))
+ # -- Stop updating the map
+ gamedata_engine ().set_update_map (0)
- # -- add stuff to the win_manager
- win_manager_add (menu)
- win_manager_set_focus (menu)
+ # -- open the main menu
+ gamedata_engine ().main (menu, "game_menu")
+
+ # -- main menu closed -> see what to do
+ if menu.get_result () == 5:
+ # -- quit the game
+ gamedata_engine ().main_quit ()
+ else:
+ # -- continue
+ gamedata_engine ().set_update_map (1)
+
menu = None
# -- move the player around
@@ -126,7 +108,7 @@ class keyboard_control:
# Special tip! :)
elif input_has_been_pushed (SDLK_n):
- if self.myself.submap () < gamedata_map_engine ().get_landmap
().nbr_of_submaps () - 1:
+ if self.myself.submap () < gamedata_engine ().get_landmap
().nbr_of_submaps () - 1:
self.myself.jump_to (self.myself.submap () + 1, 5, 3)
else:
self.myself.jump_to (0, 7, 18)
@@ -137,31 +119,35 @@ class keyboard_control:
elif self.myself.submap () == 1:
self.myself.jump_to (0, 7, 18)
else:
- self.myself.jump_to (gamedata_map_engine ().get_landmap
().nbr_of_submaps () - 1, 5, 3)
+ self.myself.jump_to (gamedata_engine ().get_landmap
().nbr_of_submaps () - 1, 5, 3)
# -- shortcut to the load screen
elif input_has_been_pushed (SDLK_l):
s = data_screen (LOAD_SCREEN)
- s.thisown = C
- s.py_signal_connect (self.on_data_screen_close, win_event_CLOSE)
- # Stop updating the map
- gamedata_map_engine ().set_should_update_map (0)
s.set_activate (1)
- win_manager_add (s)
- win_manager_set_focus (s)
-
+ # -- Stop updating the map
+ gamedata_engine ().set_update_map (0)
+
+ # -- open the load screen
+ gamedata_engine ().main (s, "load_screen")
+
+ # -- continue
+ gamedata_engine ().set_update_map (1)
+
# -- and to the save screen
elif input_has_been_pushed (SDLK_s):
s = data_screen (SAVE_SCREEN)
- s.thisown = C
- s.py_signal_connect (self.on_data_screen_close, win_event_CLOSE)
- # Stop updating the map
- gamedata_map_engine ().set_should_update_map (0)
s.set_activate (1)
- win_manager_add (s)
- win_manager_set_focus (s)
+ # -- Stop updating the map
+ gamedata_engine ().set_update_map (0)
+
+ # -- open the save screen
+ gamedata_engine ().main (s, "save_screen")
+
+ # -- continue
+ gamedata_engine ().set_update_map (1)
# -- python console
elif input_has_been_pushed (SDLK_TAB):
diff --git a/scripts/schedules/mapcharacters/orloth.py
b/scripts/schedules/mapcharacters/orloth.py
index 6256e97..275d0d3 100755
--- a/scripts/schedules/mapcharacters/orloth.py
+++ b/scripts/schedules/mapcharacters/orloth.py
@@ -16,8 +16,7 @@
# From time to time he'll complain about the grandfather clock
import adonthell
-from adonthell import STAND_NORTH, STAND_SOUTH, STAND_WEST, STAND_EAST
-from random import randint
+import random
class orloth:
@@ -28,11 +27,11 @@ class orloth:
"That barrel is leaking.", \
"I hope they'll find the thief!"]
- self.coords = [(10, 3, STAND_NORTH), \
- (3, 5, STAND_SOUTH), \
- (7, 6, STAND_EAST), \
- (12, 3, STAND_SOUTH), \
- (7, 4, STAND_WEST), \
+ self.coords = [(10, 3, adonthell.STAND_NORTH), \
+ (3, 5, adonthell.STAND_SOUTH), \
+ (7, 6, adonthell.STAND_EAST), \
+ (12, 3, adonthell.STAND_SOUTH), \
+ (7, 4, adonthell.STAND_WEST), \
(3, 7, 0), \
(9, 7, 0), \
(12, 5, 0), \
@@ -54,44 +53,25 @@ class orloth:
# -- put/take the first mug
if delay == 100:
- index = myself.get_val ("table_num")
- if index > 0:
- key = "table%i_set" % index
- val = myself.get_val (key)
-
- x, y = self.coords[index+4][:2]
- if val == 0:
- adonthell.gamedata_map_engine ().get_landmap
().put_mapobject (1, x, y, 106)
- else:
- adonthell.gamedata_map_engine ().get_landmap
().remove_mapobject (1, x, y, 106)
-
+ self.put_object (106, 0)
+
# -- put/take the second mug
elif delay == 50:
- index = myself.get_val ("table_num")
- if index > 0:
- key = "table%i_set" % index
- val = myself.get_val (key)
- myself.set_val (key, ~val)
-
- x, y = self.coords[index+4][:2]
- if val == 0:
- adonthell.gamedata_map_engine ().get_landmap
().put_mapobject (1, x, y, 107)
- else:
- adonthell.gamedata_map_engine ().get_landmap
().remove_mapobject (1, x, y, 107)
+ self.put_object (107, 1)
# -- engage a new movement
elif todo == 1:
# -- when we are at the bar, then wait a while before
# moving again
if myself.posx () != 2:
- delay = randint (40, 120) * 20
+ delay = random.randint (40, 120) * 20
myself.set_val ("delay", delay)
- myself.set_goal (2, 2, STAND_SOUTH)
+ myself.set_goal (2, 2, adonthell.STAND_SOUTH)
myself.set_val ("table_num", 0)
# -- otherwise only wait a little
else:
- index = randint (0, 4)
+ index = random.randint (0, 4)
x, y, dir = self.coords[index]
myself.set_goal (x, y, dir)
myself.set_val ("delay", 150)
@@ -116,6 +96,27 @@ class orloth:
tmp = myself.get_val ("say_something")
myself.set_val ("say_something", tmp - 1)
if tmp == 0:
- myself.speak (self.speech[randint (0, 2)])
- delay = randint (50, 150) * 20
+ myself.speak (self.speech[random.randint (0, 2)])
+ delay = random.randint (50, 150) * 20
myself.set_val ("say_something", delay)
+
+
+ # -- put/remove something from the table we're standing next to
+ def put_object (self, object, update):
+ myself = self.myself
+
+ # -- the table we're next to
+ index = myself.get_val ("table_num")
+ if index > 0:
+ # -- see whether table is laid or not
+ key = "table%i_set" % index
+ val = myself.get_val (key)
+
+ x, y = self.coords[index+4][:2]
+ if val == 0:
+ adonthell.gamedata_engine ().get_landmap ().put_mapobject (1,
x, y, object)
+ if update == 1: myself.set_val (key, 1)
+ else:
+ adonthell.gamedata_engine ().get_landmap ().remove_mapobject
(1, x, y, object)
+ if update == 1: myself.set_val (key, 0)
+
- [adonthell-wastesedge-commits] Release_0-3-1 ed1c142 160/237: FIXED Makefile.am's, (continued)
- [adonthell-wastesedge-commits] Release_0-3-1 ed1c142 160/237: FIXED Makefile.am's, Kai Sterker, 2016/07/25
- [adonthell-wastesedge-commits] Release_0-3-1 6087908 137/237: ADDED Bjarn's schedule, Kai Sterker, 2016/07/25
- [adonthell-wastesedge-commits] Release_0-3-1 69c9103 210/237: Fixed the extro a bit, Kai Sterker, 2016/07/25
- [adonthell-wastesedge-commits] Release_0-3-1 79418df 227/237: ADDED Enter as alternative 'Action' key, Kai Sterker, 2016/07/25
- [adonthell-wastesedge-commits] Release_0-3-1 4f1725f 119/237: FIXED erek and jelom, Kai Sterker, 2016/07/25
- [adonthell-wastesedge-commits] Release_0-3-1 8fdfd66 165/237: Added Barn interior, Kai Sterker, 2016/07/25
- [adonthell-wastesedge-commits] Release_0-3-1 48053be 090/237: Updated the init script, so you can skip the title sequence, Kai Sterker, 2016/07/25
- [adonthell-wastesedge-commits] Release_0-3-1 547a59d 130/237: FIXED the mess I made ; P, Kai Sterker, 2016/07/25
- [adonthell-wastesedge-commits] Release_0-3-1 b1a1e7a 154/237: ADDED extro dialogue, Kai Sterker, 2016/07/25
- [adonthell-wastesedge-commits] Release_0-3-1 c31d284 145/237: MOVED fading code to mapengine, Kai Sterker, 2016/07/25
- [adonthell-wastesedge-commits] Release_0-3-1 78eb33a 147/237: UPDATED scripts to make use of the new win_manager features,
Kai Sterker <=
- [adonthell-wastesedge-commits] Release_0-3-1 22057de 206/237: ADDED new music, Kai Sterker, 2016/07/25
- [adonthell-wastesedge-commits] Release_0-3-1 fb80ca7 128/237: Corrected a problem with the name., Kai Sterker, 2016/07/25
- [adonthell-wastesedge-commits] Release_0-3-1 8054ed1 175/237: ADDED gem found in Silverhair's luggage, Kai Sterker, 2016/07/25
- [adonthell-wastesedge-commits] Release_0-3-1 39a6545 170/237: Fixed gate and added Kitchen's furnitures, Kai Sterker, 2016/07/25
- [adonthell-wastesedge-commits] Release_0-3-1 febb1af 187/237: ADDED in-game music!, Kai Sterker, 2016/07/25
- [adonthell-wastesedge-commits] Release_0-3-1 88aa49d 067/237: Fixed Oliver's teleportation bug., Kai Sterker, 2016/07/25
- [adonthell-wastesedge-commits] Release_0-3-1 558cf65 088/237: Fixed the mess I made yesterday. Sorry., Kai Sterker, 2016/07/25
- [adonthell-wastesedge-commits] Release_0-3-1 0924f07 144/237: ADDED final part to Bjarn's dialogue, Kai Sterker, 2016/07/25
- [adonthell-wastesedge-commits] Release_0-3-1 c20844e 118/237: UPDATED Erek's dialogue, Kai Sterker, 2016/07/25
- [adonthell-wastesedge-commits] Release_0-3-1 e7e6e03 121/237: ADDED script to get all character's to Bjarn's room, Kai Sterker, 2016/07/25