windstille-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Windstille-devel] rev 376 - trunk/src


From: Ingo Ruhnke
Subject: [Windstille-devel] rev 376 - trunk/src
Date: Tue, 01 Jun 2004 01:46:10 +0200

Author: grumbel
Date: 2004-06-01 01:46:10 +0200 (Tue, 01 Jun 2004)
New Revision: 376

Removed:
   trunk/src/editor.py
Modified:
   trunk/src/netpanzer.py
   trunk/src/supertux.py
   trunk/src/tileset.cxx
Log:
- fixed transparent tile handling a bit
- some cleanup

Deleted: trunk/src/editor.py
===================================================================
--- trunk/src/editor.py 2004-05-31 20:28:07 UTC (rev 375)
+++ trunk/src/editor.py 2004-05-31 23:46:10 UTC (rev 376)
@@ -1,343 +0,0 @@
-##  $Id$
-## 
-##  Flexlay - A Generic 2D Game Editor
-##  Copyright (C) 2002 Ingo Ruhnke <address@hidden>
-##
-##  This program is free software; you can redistribute it and/or
-##  modify it under the terms of the GNU General Public License
-##  as published by the Free Software Foundation; either version 2
-##  of the License, or (at your option) any later version.
-##
-##  This program is distributed in the hope that it will be useful,
-##  but WITHOUT ANY WARRANTY; without even the implied warranty of
-##  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-##  GNU General Public License for more details.
-## 
-##  You should have received a copy of the GNU General Public License
-##  along with this program; if not, write to the Free Software
-##  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-
-import os
-import sys
-from flexlay import *
-
-flexlay = Flexlay()
-flexlay.init()
-
-from   supertux import *
-# import netpanzer
-
-screen_w = 800
-screen_h = 600
-
-editor = Editor()
-gui = editor.get_gui_manager()
-
-myrect = CL_Rect(CL_Point(0, 56), CL_Size(665, 488+56))
-editor_map = EditorMapComponent(myrect, gui.get_component())
-workspace  = Workspace(myrect.get_width(), myrect.get_height())
-editor_map.set_workspace(workspace)
-
-# Tools
-tilemap_paint_tool  = TileMapPaintTool()
-tilemap_select_tool = TileMapSelectTool()
-zoom_tool           = ZoomTool()
-objmap_select_tool  = ObjMapSelectTool()
-
-workspace.set_tool(tilemap_paint_tool.to_tool());
-
-startlevel = SuperTuxLevel(100, 50)
-# startlevel = netpanzer.Level(256, 256)
-startlevel.activate(workspace)
-
-button_panel = Panel(CL_Rect(CL_Point(0, 23), CL_Size(800, 33)), 
gui.get_component())
-
-def gui_level_save_as():
-    save_dialog.set_filename(os.path.dirname(save_dialog.get_filename()) + "/")
-    save_dialog.run(supertux_save_level)
-
-def gui_level_save():
-    if workspace.get_map().get_metadata().filename:
-        save_dialog.set_filename(workspace.get_map().get_metadata().filename)
-    else:
-        save_dialog.set_filename(os.path.dirname(save_dialog.get_filename())  
+ "/")
-        
-    save_dialog.run(supertux_save_level)
-   
-def gui_level_load():
-    load_dialog.run(supertux_load_level)
-
-def gui_toggle_minimap():
-    if minimap.is_visible():
-        minimap.show(False)
-    else:
-        minimap.show(True)        
-
-class Counter:
-    counter = 0;
-    
-    def __init__(self, i):
-        self.counter = i
-        
-    def inc(self, i):
-        self.counter += i
-        return self.counter
-
-p = Counter(2)
-
-new_icon         = Icon(CL_Rect(CL_Point(p.inc(0),  2), CL_Size(32, 32)),
-                                
make_sprite("../data/images/icons24/stock_new.png"), "Some tooltip", 
button_panel);
-load_icon        = Icon(CL_Rect(CL_Point(p.inc(32), 2), CL_Size(32, 32)),
-                        make_sprite("../data/images/icons24/stock_open.png"), 
"Some tooltip", button_panel);
-load_recent_icon = Icon(CL_Rect(CL_Point(p.inc(32), 2), CL_Size(16, 32)),
-                        make_sprite("../data/images/icons24/downarrow.png"), 
"Some tooltip", button_panel);
-save_icon        = Icon(CL_Rect(CL_Point(p.inc(16), 2), CL_Size(32, 32)),
-                        make_sprite("../data/images/icons24/stock_save.png"), 
"Some tooltip", button_panel);
-save_as_icon     = Icon(CL_Rect(CL_Point(p.inc(32), 2), CL_Size(32, 32)),
-                        
make_sprite("../data/images/icons24/stock_save_as.png"), "Some tooltip", 
button_panel);
-
-load_icon.set_callback(gui_level_load)
-load_recent_icon.set_callback(lambda: recent_files_menu.run())
-save_icon.set_callback(gui_level_save)
-save_as_icon.set_callback(gui_level_save_as)
-
-copy_icon    = Icon(CL_Rect(CL_Point(p.inc(48), 2), CL_Size(32, 32)),
-                    make_sprite("../data/images/icons24/stock_copy.png"), 
"Some tooltip", button_panel);
-paste_icon   = Icon(CL_Rect(CL_Point(p.inc(32), 2), CL_Size(32, 32)),
-                    make_sprite("../data/images/icons24/stock_paste.png"), 
"Some tooltip", button_panel);
-
-undo_icon = Icon(CL_Rect(CL_Point(p.inc(48), 2), CL_Size(32, 32)),
-                 make_sprite("../data/images/icons24/stock_undo.png"), "Some 
tooltip", button_panel);
-redo_icon = Icon(CL_Rect(CL_Point(p.inc(32), 2), CL_Size(32, 32)),
-                 make_sprite("../data/images/icons24/stock_redo.png"), "Some 
tooltip", button_panel);
-
-undo_icon.set_callback(editor.undo)
-redo_icon.set_callback(editor.redo)
-
-undo_icon.disable()
-redo_icon.disable()
-
-minimap_icon = Icon(CL_Rect(CL_Point(p.inc(48), 2), CL_Size(32, 32)),
-                    make_sprite("../data/images/icons24/minimap.png"), "Some 
tooltip", button_panel);
-minimap_icon.set_callback(gui_toggle_minimap)
-
-foreground_icon  = Icon(CL_Rect(CL_Point(p.inc(48), 2), CL_Size(32, 32)),
-                        make_sprite("../data/images/icons24/foreground.png"), 
"Some tooltip", button_panel);
-interactive_icon = Icon(CL_Rect(CL_Point(p.inc(32), 2), CL_Size(32, 32)),
-                        make_sprite("../data/images/icons24/interactive.png"), 
"Some tooltip", button_panel);
-background_icon  = Icon(CL_Rect(CL_Point(p.inc(32), 2), CL_Size(32, 32)),
-                        make_sprite("../data/images/icons24/background.png"), 
"Some tooltip", button_panel);
-eye_icon         = Icon(CL_Rect(CL_Point(p.inc(32), 2), CL_Size(32, 32)),
-                        make_sprite("../data/images/icons24/eye.png"), "Some 
tooltip", button_panel);
-
-layer_menu = Menu(CL_Point(32*11+2, 54), gui.get_component())
-
-def on_map_change():
-    if (workspace.get_map().undo_stack_size() > 0):
-        undo_icon.enable()
-    else:
-        undo_icon.disable()
-
-    if (workspace.get_map().redo_stack_size() > 0):
-        redo_icon.enable()
-    else:
-        redo_icon.disable()        
-
-def set_tilemap_paint_tool():
-    workspace.set_tool(tilemap_paint_tool.to_tool())
-    paint.set_down()
-    select.set_up()
-    zoom.set_up()
-    object.set_up()
-    supertux.show_tiles()
-
-def set_tilemap_select_tool():
-    workspace.set_tool(tilemap_select_tool.to_tool())
-    paint.set_up()
-    select.set_down()
-    zoom.set_up()
-    object.set_up()
-    supertux.show_none()
-    
-def set_zoom_tool():
-    workspace.set_tool(zoom_tool.to_tool())
-    paint.set_up()
-    select.set_up()
-    zoom.set_down()
-    object.set_up()
-    supertux.show_none()
-    
-def set_objmap_select_tool():
-    workspace.set_tool(objmap_select_tool.to_tool())
-    paint.set_up()
-    select.set_up()
-    zoom.set_up()
-    object.set_down()
-    supertux.show_objects()
-
-toolbar = Panel(CL_Rect(CL_Point(0, 23+33), CL_Size(33, 32*4+2)), 
gui.get_component())
-
-paint = Icon(CL_Rect(CL_Point(2, 32*0+2), CL_Size(32, 32)), 
make_sprite("../data/images/tools/stock-tool-pencil-22.png"), "Some tooltip", 
toolbar);
-paint.set_callback(set_tilemap_paint_tool)
-
-select = Icon(CL_Rect(CL_Point(2, 32*1+2), CL_Size(32,32)), 
make_sprite("../data/images/tools/stock-tool-rect-select-22.png"), "Some 
tooltip", toolbar);
-select.set_callback(set_tilemap_select_tool)
-
-zoom = Icon(CL_Rect(CL_Point(2, 32*2+2), CL_Size(32,32)), 
make_sprite("../data/images/tools/stock-tool-zoom-22.png"), "Some tooltip", 
toolbar);
-zoom.set_callback(set_zoom_tool)
-
-object = Icon(CL_Rect(CL_Point(2, 32*3+2), CL_Size(32,32)), 
make_sprite("../data/images/tools/stock-tool-clone-22.png"), "Some tooltip", 
toolbar);
-object.set_callback(set_objmap_select_tool)
-
-# erase  = Icon(CL_Point(2, 32+1+2), 
make_sprite("../data/images/tools/stock-tool-eraser-22.png"), "Some tooltip", 
toolbar);
-# move   = Icon(CL_Point(2, 32*2+2), 
make_sprite("../data/images/tools/stock-tool-move-22.png"), "Some tooltip", 
toolbar);
-
-# SuperTux Specific stuff
-def gui_show_foreground():
-    display_properties.layer = SuperTuxLevel.FOREGROUND
-    display_properties.set(workspace.get_map().get_metadata())
-    TilemapLayer_set_current(workspace.get_map().get_metadata().foreground)
-    foreground_icon.set_down()
-    interactive_icon.set_up()
-    background_icon.set_up()
-    minimap.update_minimap()
-
-def gui_show_background():
-    display_properties.layer = SuperTuxLevel.BACKGROUND
-    display_properties.set(workspace.get_map().get_metadata())
-    TilemapLayer_set_current(workspace.get_map().get_metadata().background)
-    foreground_icon.set_up()
-    interactive_icon.set_up()
-    background_icon.set_down()
-    minimap.update_minimap()
-
-def gui_show_interactive():
-    display_properties.layer = SuperTuxLevel.INTERACTIVE
-    display_properties.set(workspace.get_map().get_metadata())
-    TilemapLayer_set_current(workspace.get_map().get_metadata().interactive)
-    foreground_icon.set_up()
-    interactive_icon.set_down()
-    background_icon.set_up()
-    minimap.update_minimap()
-
-def gui_show_all():
-    display_properties.show_all = True
-    display_properties.current_only = False
-    display_properties.set(workspace.get_map().get_metadata())
-
-def gui_show_current():
-    display_properties.show_all = False
-    display_properties.current_only = False
-    display_properties.set(workspace.get_map().get_metadata())
-
-def gui_show_only_current():
-    display_properties.show_all = False
-    display_properties.current_only = True
-    display_properties.set(workspace.get_map().get_metadata())
-
-foreground_icon.set_callback(gui_show_foreground)
-interactive_icon.set_callback(gui_show_interactive)
-background_icon.set_callback(gui_show_background)
-eye_icon.set_callback(layer_menu.run)
-
-mysprite = make_sprite("../data/images/icons16/stock_paste-16.png")
-
-layer_menu.add_item(mysprite, "Show all", gui_show_all)
-layer_menu.add_item(mysprite, "Show current", gui_show_current)
-layer_menu.add_item(mysprite, "Show only current", gui_show_only_current)
-
-supertux = SuperTuxGUI(load_supertux_tiles(), gui)
-# supertux.tileselector.set_tileset(netpanzer.tileset)
-
-level = None
-def menu_file_open():
-    print "File/Open"
-    level = 
SuperTuxLevel('/home/ingo/cvs/supertux/supertux/data/levels/world1/level2.stl')
-    print "Loading done"
-    level.activate(workspace)
-    connect(level.editormap.sig_change(), on_map_change)
-    print "Activation done"
-
-def supertux_save_level(filename):
-    workspace.get_map().get_metadata().save(filename)
-
-recent_files_menu = Menu(CL_Point(32*2, 54), gui.get_component())
-for filename in config.recent_files:
-    recent_files_menu.add_item(mysprite, filename, lambda: 
supertux_load_level(filename))
-
-def has_element(lst, el):
-    for i in lst:
-        if i == el:
-            return True
-    return False
-
-def netpanzer_load_level(filename):
-    NetPanzerFileStruct(filename)
-
-def supertux_load_level(filename):   
-    print "Loading: ", filename
-    level = SuperTuxLevel(filename)
-    level.activate(workspace)
-    connect(level.editormap.sig_change(), on_map_change)
-    
-    if not(has_element(config.recent_files, filename)):
-        config.recent_files.append(filename)
-        recent_files_menu.add_item(mysprite, filename, lambda: 
supertux_load_level(filename))
-
-    minimap.update_minimap()
-
-menu = CL_Menu(gui.get_component())
-menu.add_item("File/Open...", gui_level_load)
-menu.add_item("File/Save...", gui_level_save)
-# menu.add_item("File/Save Commands...", menu_file_save_commands)
-menu.add_item("File/Save As...", gui_level_save_as)
-menu.add_item("File/Quit",  gui.quit)
-
-def gui_set_zoom(zoom):
-    gc = editor_map.get_workspace().get_gc_state()
-    pos = gc.get_pos()
-    gc.set_zoom(zoom)
-    gc.set_pos(pos)
-
-menu.add_item("Zoom/1:4 (25%) ",  lambda: gui_set_zoom(0.25))
-menu.add_item("Zoom/1:2 (50%) ",  lambda: gui_set_zoom(0.5))
-menu.add_item("Zoom/1:1 (100%) ", lambda: gui_set_zoom(1.0)) 
-menu.add_item("Zoom/2:1 (200%) ", lambda: gui_set_zoom(2.0))
-menu.add_item("Zoom/4:1 (400%) ", lambda: gui_set_zoom(4.0))
-
-display_properties = DisplayProperties()
-
-mysprite = make_sprite("../data/images/icons16/stock_paste-16.png")
-
-mymenu = Menu(CL_Point(134, 54), gui.get_component())
-mymenu.add_item(mysprite, "Foobar aeuaeu", None)
-mymenu.add_item(mysprite, "bla", None)
-mymenu.add_seperator()
-mymenu.add_item(mysprite, "Foobar", None)
-mymenu.add_item(mysprite, "blubaoeuau aueau aeu", None)
-mymenu.add_item(mysprite, "bla", None)
-
-def show_menu():
-    mymenu.run()
-
-paste_icon.set_callback(show_menu)
-
-# minimap_panel = Panel(CL_Rect(CL_Point(0, 600-56), CL_Size(800-134, 56)), 
gui.get_component())
-minimap = Minimap(editor_map, CL_Rect(CL_Point(3, 488+3-14), 
CL_Size(794-134-16, 50)), editor_map)
-
-load_dialog = SimpleFileDialog("Load SuperTux Level", "Load", "Cancel", 
gui.get_component())
-load_dialog.set_filename(config.datadir + "levels/")
-save_dialog = SimpleFileDialog("Save SuperTux Level as...", "Save", "Cancel", 
gui.get_component())
-save_dialog.set_filename(config.datadir + "levels/")
-
-# Init the GUI, so that button state is in sync with internal state
-gui_show_interactive()
-gui_show_current()
-set_tilemap_paint_tool()
-
-gui.run()
-
-flexlay.deinit()
-print "deinit done"
-
-# EOF #

Modified: trunk/src/netpanzer.py
===================================================================
--- trunk/src/netpanzer.py      2004-05-31 20:28:07 UTC (rev 375)
+++ trunk/src/netpanzer.py      2004-05-31 23:46:10 UTC (rev 376)
@@ -33,19 +33,21 @@
 
         # Setting defaults
         self.config.add_section("netPanzer")
-        self.config.set("netPanzer", "datadir", 
"/home/ingo/cvs/supertux/supertux/data/")
+        self.config.set("netPanzer", "datadir", 
"/home/ingo/projects/netpanzer/cvs/netpanzer/")
         self.config.set("netPanzer", "recent_files", "[]")
 
         self.config.read(['netpanzer.cfg', 
os.path.expanduser('~/.flexlay/netpanzer.cfg')])
 
         self.datadir      = self.config.get("netPanzer", "datadir")
-        self.recent_files = eval(self.config.get("netPanzer", "recent_files"))
+        str = self.config.get("netPanzer", "recent_files")
+        self.recent_files = eval(str)
         
     def __del__(self):
         self.config.set("netPanzer", "datadir", self.datadir)
         self.config.set("netPanzer", "recent_files", self.recent_files)
-        
-        self.config.write(open(os.path.expanduser('~/.flexlay/supertux.cfg'), 
'w'))
+        print "Writing config",
+        self.config.write(open(os.path.expanduser('~/.flexlay/netpanzer.cfg'), 
'w'))
+        print "Writing Done"
 
 class Level:
     filename  = None
@@ -70,7 +72,7 @@
         # FIXME: Data might not get freed since its 'recursively' refcounted
         self.editormap.set_metadata(make_metadata(self))
 
-    def save(filename):
+    def save(self, filename):
         data.save(filename)
 
     def activate(self, workspace):
@@ -125,9 +127,16 @@
 
 button_panel = Panel(CL_Rect(CL_Point(0, 23), CL_Size(800, 33)), 
gui.get_component())
 
+def netpanzer_load_level(filename):
+    level = Level(filename)
+    level.activate(workspace)
+
+def netpanzer_save_level(filename):
+    workspace.get_map().get_metadata().save(filename)
+
 def gui_level_save_as():
     save_dialog.set_filename(os.path.dirname(save_dialog.get_filename()) + "/")
-    save_dialog.run(supertux_save_level)
+    save_dialog.run(netpanzer_save_level)
 
 def gui_level_save():
     if workspace.get_map().get_metadata().filename:
@@ -135,10 +144,10 @@
     else:
         save_dialog.set_filename(os.path.dirname(save_dialog.get_filename())  
+ "/")
         
-    save_dialog.run(supertux_save_level)
+    save_dialog.run(netpanzer_save_level)
    
 def gui_level_load():
-    load_dialog.run(gui_load_level)
+    load_dialog.run(netpanzer_load_level)
 
 def gui_toggle_minimap():
     if minimap.is_visible():
@@ -258,23 +267,25 @@
 
 level = None
 
-def gui_load_level(filename):
+mysprite = make_sprite("../data/images/icons16/stock_paste-16.png")
+
+def netpanzer_load_level(filename):
     level = Level(filename)
     level.activate(workspace)
     connect(level.editormap.sig_change(), on_map_change)
     
     if not(has_element(config.recent_files, filename)):
         config.recent_files.append(filename)
-        recent_files_menu.add_item(mysprite, filename, lambda: 
gui_load_level(filename))
+        recent_files_menu.add_item(mysprite, filename, lambda: 
netpanzer_load_level(filename))
 
     minimap.update_minimap()
 
-def gui_save_level(filename):
+def netpanzer_save_level(filename):
     workspace.get_map().get_metadata().save(filename)
 
 recent_files_menu = Menu(CL_Point(32*2, 54), gui.get_component())
 for filename in config.recent_files:
-    recent_files_menu.add_item(mysprite, filename, lambda: 
gui_load_level(filename))
+    recent_files_menu.add_item(mysprite, filename, lambda: 
netpanzer_load_level(filename))
 
 def has_element(lst, el):
     for i in lst:
@@ -304,9 +315,9 @@
 minimap = Minimap(editor_map, CL_Rect(CL_Point(3, 488+56 - 128-3), 
CL_Size(128, 128)), option_panel)
 
 load_dialog = SimpleFileDialog("Load netPanzer Level", "Load", "Cancel", 
gui.get_component())
-load_dialog.set_filename(config.datadir + "levels/")
+load_dialog.set_filename(config.datadir + "maps/")
 save_dialog = SimpleFileDialog("Save netPanzer Level as...", "Save", "Cancel", 
gui.get_component())
-save_dialog.set_filename(config.datadir + "levels/")
+save_dialog.set_filename(config.datadir + "maps/")
 
 set_tilemap_paint_tool()
 

Modified: trunk/src/supertux.py
===================================================================
--- trunk/src/supertux.py       2004-05-31 20:28:07 UTC (rev 375)
+++ trunk/src/supertux.py       2004-05-31 23:46:10 UTC (rev 376)
@@ -38,7 +38,9 @@
         self.config.read(['supertux.cfg', 
os.path.expanduser('~/.flexlay/supertux.cfg')])
 
         self.datadir      = self.config.get("SuperTux", "datadir")
-        self.recent_files = eval(self.config.get("SuperTux", "recent_files"))
+        str = self.config.get("SuperTux", "recent_files")
+        print str
+        self.recent_files = eval(str)
         
     def __del__(self):
         self.config.set("SuperTux", "datadir", self.datadir)
@@ -59,9 +61,10 @@
             if not(image):
                 image = get_value_from_tree(['images', '_'], data, 
"notile.png")
 
-            tileset.add_tile(id,
-                             Tile(config.datadir + 'images/tilesets/' + image,
-                                  CL_Color(255,   0,   0, 128)))
+            if id != 0: # leave tile 0 transparent
+                tileset.add_tile(id,
+                                 Tile(config.datadir + 'images/tilesets/' + 
image,
+                                      CL_Color(255,   0,   0, 128)))
 
 class SuperTuxLevel:
     filename = None

Modified: trunk/src/tileset.cxx
===================================================================
--- trunk/src/tileset.cxx       2004-05-31 20:28:07 UTC (rev 375)
+++ trunk/src/tileset.cxx       2004-05-31 23:46:10 UTC (rev 376)
@@ -85,19 +85,10 @@
 Tile* 
 Tileset::create (int id)
 {
-  // FIXME: this might cause throuble for some games
-  // id 0 is always the empty tile
-  if (id == 0)
-    { 
-      return 0;
-    }
+  if (id >= 0 && id < int(impl->tiles.size()))
+    return impl->tiles[id];
   else
-    {
-      if (id > 0 && id < int(impl->tiles.size()))
-        return impl->tiles[id];
-      else
-        return 0;
-    }
+    return 0;
 }
 
 int





reply via email to

[Prev in Thread] Current Thread [Next in Thread]