diff options
| author | Magnus Auvinen <magnus.auvinen@gmail.com> | 2008-03-09 23:29:14 +0000 |
|---|---|---|
| committer | Magnus Auvinen <magnus.auvinen@gmail.com> | 2008-03-09 23:29:14 +0000 |
| commit | 78155fa6d766d4529e8f602cb36457bce55cb17d (patch) | |
| tree | 733044228da4c55a3e1438ed463cec6c4e7bd7fa /src/game/editor/ed_editor.cpp | |
| parent | 61535a565a62d74654140af97ddd1cc853a54197 (diff) | |
| download | zcatch-78155fa6d766d4529e8f602cb36457bce55cb17d.tar.gz zcatch-78155fa6d766d4529e8f602cb36457bce55cb17d.zip | |
fixed so you can append maps in the editor. broken the loading of old maps however :D
Diffstat (limited to 'src/game/editor/ed_editor.cpp')
| -rw-r--r-- | src/game/editor/ed_editor.cpp | 82 |
1 files changed, 49 insertions, 33 deletions
diff --git a/src/game/editor/ed_editor.cpp b/src/game/editor/ed_editor.cpp index 24df8b94..0ae82bfb 100644 --- a/src/game/editor/ed_editor.cpp +++ b/src/game/editor/ed_editor.cpp @@ -77,7 +77,7 @@ void LAYERGROUP::render() for(int i = 0; i < layers.len(); i++) { - if(layers[i]->visible && layers[i] != editor.game_layer) + if(layers[i]->visible && layers[i] != editor.map.game_layer) layers[i]->render(); } } @@ -782,10 +782,10 @@ static void do_map_editor(RECT view, RECT toolbar) } // render the game above everything else - if(editor.game_group->visible && editor.game_layer->visible) + if(editor.map.game_group->visible && editor.map.game_layer->visible) { - editor.game_group->mapscreen(); - editor.game_layer->render(); + editor.map.game_group->mapscreen(); + editor.map.game_layer->render(); } } @@ -1075,7 +1075,7 @@ static void do_map_editor(RECT view, RECT toolbar) // render screen sizes if(editor.proof_borders) { - LAYERGROUP *g = editor.game_group; + LAYERGROUP *g = editor.map.game_group; g->mapscreen(); gfx_texture_set(-1); @@ -2036,15 +2036,9 @@ static void render_envelopeeditor(RECT view) } } -static void callback_open_map(const char *filename) -{ - editor.load(filename); -} - -static void callback_save_map(const char *filename) -{ - editor.save(filename); -} +static void callback_open_map(const char *filename) { editor.load(filename); } +static void callback_append_map(const char *filename) { editor.append(filename); } +static void callback_save_map(const char *filename) { editor.save(filename); } static int popup_menu_file(RECT view) { @@ -2052,6 +2046,7 @@ static int popup_menu_file(RECT view) static int save_button = 0; static int save_as_button = 0; static int open_button = 0; + static int append_button = 0; RECT slot; ui_hsplit_t(&view, 2.0f, &slot, &view); @@ -2072,7 +2067,15 @@ static int popup_menu_file(RECT view) ui_hsplit_t(&view, 10.0f, &slot, &view); ui_hsplit_t(&view, 12.0f, &slot, &view); - if(do_editor_button(&save_button, "Save", 0, &slot, draw_editor_button_menuitem, 0, "Saves the current map")) + if(do_editor_button(&append_button, "Append", 0, &slot, draw_editor_button_menuitem, 0, "Opens a map and adds everything from that map to the current one")) + { + editor.invoke_file_dialog("Append Map", "Append", "data/maps/", "", callback_append_map); + return 1; + } + + ui_hsplit_t(&view, 10.0f, &slot, &view); + ui_hsplit_t(&view, 12.0f, &slot, &view); + if(do_editor_button(&save_button, "Save (NOT IMPL)", 0, &slot, draw_editor_button_menuitem, 0, "Saves the current map")) { return 1; } @@ -2203,20 +2206,15 @@ void EDITOR::render() void EDITOR::reset(bool create_default) { - editor.map.groups.deleteall(); - editor.map.envelopes.deleteall(); - editor.map.images.deleteall(); - - editor.game_layer = 0; - editor.game_group = 0; + editor.map.clean(); // create default layers if(create_default) + editor.map.create_default(entities_texture); + + /* { - editor.make_game_group(editor.map.new_group()); - editor.make_game_layer(new LAYER_GAME(50, 50)); - editor.game_group->add_layer(editor.game_layer); - } + }*/ selected_layer = 0; selected_group = 0; @@ -2226,21 +2224,39 @@ void EDITOR::reset(bool create_default) selected_image = 0; } -void EDITOR::make_game_layer(LAYER *layer) +void MAP::make_game_layer(LAYER *layer) { - editor.game_layer = (LAYER_GAME *)layer; - editor.game_layer->tex_id = entities_texture; - editor.game_layer->readonly = true; + game_layer = (LAYER_GAME *)layer; + game_layer->tex_id = entities_texture; + game_layer->readonly = true; } -void EDITOR::make_game_group(LAYERGROUP *group) +void MAP::make_game_group(LAYERGROUP *group) { - editor.game_group = group; - editor.game_group->game_group = true; - editor.game_group->name = "Game"; + game_group = group; + game_group->game_group = true; + game_group->name = "Game"; } + +void MAP::clean() +{ + groups.deleteall(); + envelopes.deleteall(); + images.deleteall(); + + game_layer = 0x0; + game_group = 0x0; +} + +void MAP::create_default(int entities_texture) +{ + make_game_group(new_group()); + make_game_layer(new LAYER_GAME(50, 50)); + game_group->add_layer(game_layer); +} + extern "C" void editor_init() { checker_texture = gfx_load_texture("data/editor/checker.png", IMG_AUTO); |