This commit is contained in:
mkwong98 2020-11-25 15:02:21 +08:00
parent 5d49df70f8
commit c8f3a6b239
14 changed files with 726 additions and 258 deletions

View file

@ -130,6 +130,7 @@ void gameObjNode::load(fstream& file, wxTreeItemId newItm){
getline(file, line);
}
updatePalettes();
updateImages();
}
else if(lineHdr == "<swaps>"){
getline(file, line);
@ -255,6 +256,26 @@ void gameObjNode::updatePalettes(){
}
}
void gameObjNode::updateImages(){
bool imageFound;
images.clear();
for(int i = 0; i < tiles.size(); ++i){
for(int j = 0; j < tiles[i].aniFrames.size(); ++j){
if(tiles[i].aniFrames[j].hasReplacement){
imageFound = false;
for(int k = 0; k < images.size(); ++k){
if(images[k] == tiles[i].aniFrames[j].img){
imageFound = true;
}
}
if(!imageFound){
images.push_back(tiles[i].aniFrames[j].img);
}
}
}
}
}
gameObjNode* gameObjNode::clone(){
gameObjNode* n = new gameObjNode();
@ -288,6 +309,7 @@ gameObjNode* gameObjNode::clone(){
n->hScrollRate = hScrollRate;
n->vScrollRate = vScrollRate;
n->updatePalettes();
n->updateImages();
return n;
}

View file

@ -55,11 +55,13 @@ class gameObjNode : public wxTreeItemData
vector<gameTile> tiles;
vector<paletteSwap> swaps;
vector<array<Uint8, 4>> palettes;
vector<condition> conditions;
vector<bool> conSigns;
vector<frameRange> frameRanges;
vector<array<Uint8, 4>> palettes;
vector<int> images;
void addTile(gameTile g);
void addToObjectSize(int gIdx);
void clearAllTiles();
@ -68,6 +70,7 @@ class gameObjNode : public wxTreeItemData
void load(fstream& file, wxTreeItemId newItm);
void save(fstream& file, wxTreeItemId newItm);
void updatePalettes();
void updateImages();
gameObjNode* clone();
string writeLine();
string writeConditionNames();

View file

@ -178,6 +178,7 @@ gameTile gameTile::clone(){
c.objCoordY = objCoordY;
c.hFlip = hFlip;
c.vFlip = vFlip;
c.aniFrames.clear();
for(int i = 0; i < aniFrames.size(); i++){
c.aniFrames.push_back(aniFrames[i]);
}

View file

@ -13,6 +13,8 @@
<Option compiler="gcc" />
<Compiler>
<Add option="-g" />
<Add directory="include" />
<Add directory="../hdnesPackEditor" />
</Compiler>
</Target>
<Target title="Release">
@ -22,6 +24,8 @@
<Option compiler="gcc" />
<Compiler>
<Add option="-O2" />
<Add directory="include" />
<Add directory="../hdnesPackEditor" />
</Compiler>
<Linker>
<Add option="-s" />
@ -74,6 +78,8 @@
<Unit filename="gameTile.h" />
<Unit filename="hdnesPackEditorcolourSelectDialog.cpp" />
<Unit filename="hdnesPackEditorcolourSelectDialog.h" />
<Unit filename="hdnesPackEditorimageDialog.cpp" />
<Unit filename="hdnesPackEditorimageDialog.h" />
<Unit filename="hdnesPackEditormainForm.cpp" />
<Unit filename="hdnesPackEditormainForm.h" />
<Unit filename="hdnesPackEditornewProjectDialog.cpp" />
@ -84,6 +90,7 @@
<Unit filename="hdnesPackEditorreplacementDialog.h" />
<Unit filename="image.cpp" />
<Unit filename="image.h" />
<Unit filename="imageDialogClient.h" />
<Unit filename="main.cpp" />
<Unit filename="main.h" />
<Unit filename="mainForm.cpp" />

View file

@ -7245,15 +7245,16 @@
1561782682 d:\work\hdnes\trunk\hdnespackeditor\image.h
"common.h"
1605864412 d:\work\hdnes\trunk\hdnespackeditor\hdnespackeditormainform.h
1606277968 d:\work\hdnes\trunk\hdnespackeditor\hdnespackeditormainform.h
"common.h"
"mainForm.h"
"colourDialogClient.h"
"paletteDialogClient.h"
"imageDialogClient.h"
"gameObjNode.h"
"classList.h"
1605854357 d:\work\hdnes\trunk\hdnespackeditor\mainform.h
1606273669 d:\work\hdnes\trunk\hdnespackeditor\mainform.h
<wx/artprov.h>
<wx/xrc/xmlres.h>
<wx/string.h>
@ -7511,7 +7512,7 @@
1561782682 d:\work\hdnes\trunk\hdnespackeditor\colourdialogclient.h
1604750244 d:\work\hdnes\trunk\hdnespackeditor\gameobjnode.h
1606271178 d:\work\hdnes\trunk\hdnespackeditor\gameobjnode.h
"common.h"
"gameTile.h"
<wx/treebase.h>
@ -7519,7 +7520,7 @@
1561782682 d:\work\hdnes\trunk\hdnespackeditor\hdnespackeditornewprojectdialog.h
"mainForm.h"
1605370594 source:d:\work\hdnes\trunk\hdnespackeditor\gameobjnode.cpp
1606278618 source:d:\work\hdnes\trunk\hdnespackeditor\gameobjnode.cpp
"coreData.h"
"gameObjNode.h"
"gameTile.h"
@ -7574,12 +7575,13 @@
"wx/gdicmn.h"
"wx/dialog.h"
1605888118 source:d:\work\hdnes\trunk\hdnespackeditor\hdnespackeditormainform.cpp
1606284449 source:d:\work\hdnes\trunk\hdnespackeditor\hdnespackeditormainform.cpp
"hdnesPackEditormainForm.h"
"hdnesPackEditornewProjectDialog.h"
"hdnesPackEditorcolourSelectDialog.h"
"hdnesPackEditorreplacementDialog.h"
"hdnesPackEditorpaletteDialog.h"
"hdnesPackEditorimageDialog.h"
"coreData.h"
"main.h"
"common.h"
@ -7664,7 +7666,7 @@
"hdnesPackEditormainForm.h"
"main.h"
1605855896 source:d:\work\hdnes\trunk\hdnespackeditor\mainform.cpp
1606273669 source:d:\work\hdnes\trunk\hdnespackeditor\mainform.cpp
"mainForm.h"
1604761296 source:d:\work\hdnes\trunk\hdnespackeditor\paletteswap.cpp
@ -7690,3 +7692,14 @@
1605862953 d:\work\hdnes\trunk\hdnespackeditor\palettedialogclient.h
1606278014 d:\work\hdnes\trunk\hdnespackeditor\imagedialogclient.h
1606278718 source:d:\work\hdnes\trunk\hdnespackeditor\hdnespackeditorimagedialog.cpp
"hdnesPackEditorimageDialog.h"
"coreData.h"
"image.h"
1606276175 d:\work\hdnes\trunk\hdnespackeditor\hdnespackeditorimagedialog.h
"mainForm.h"
"imageDialogClient.h"

View file

@ -27,7 +27,7 @@
<property name="ui_table">UI</property>
<property name="use_enum">0</property>
<property name="use_microsoft_bom">0</property>
<object class="Frame" expanded="1">
<object class="Frame" expanded="0">
<property name="aui_managed">0</property>
<property name="aui_manager_style">wxAUI_MGR_DEFAULT</property>
<property name="bg"></property>
@ -5184,11 +5184,11 @@
<property name="wrap">-1</property>
</object>
</object>
<object class="sizeritem" expanded="1">
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxALL</property>
<property name="proportion">0</property>
<object class="wxCheckBox" expanded="1">
<object class="wxCheckBox" expanded="0">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
@ -10652,7 +10652,7 @@
</object>
</object>
</object>
<object class="Dialog" expanded="1">
<object class="Dialog" expanded="0">
<property name="aui_managed">0</property>
<property name="aui_manager_style">wxAUI_MGR_DEFAULT</property>
<property name="bg"></property>
@ -10678,7 +10678,7 @@
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<object class="wxBoxSizer" expanded="1">
<object class="wxBoxSizer" expanded="0">
<property name="minimum_size"></property>
<property name="name">bSizer1</property>
<property name="orient">wxVERTICAL</property>
@ -11103,7 +11103,7 @@
</object>
</object>
</object>
<object class="Dialog" expanded="1">
<object class="Dialog" expanded="0">
<property name="aui_managed">0</property>
<property name="aui_manager_style">wxAUI_MGR_DEFAULT</property>
<property name="bg"></property>
@ -11130,7 +11130,7 @@
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnInitDialog">colourSelectInit</event>
<object class="wxBoxSizer" expanded="1">
<object class="wxBoxSizer" expanded="0">
<property name="minimum_size"></property>
<property name="name">bSizer10</property>
<property name="orient">wxVERTICAL</property>
@ -14925,11 +14925,11 @@
</object>
</object>
</object>
<object class="sizeritem" expanded="1">
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag"></property>
<property name="proportion">0</property>
<object class="wxBoxSizer" expanded="1">
<object class="wxBoxSizer" expanded="0">
<property name="minimum_size"></property>
<property name="name">bSizer11</property>
<property name="orient">wxHORIZONTAL</property>
@ -14999,7 +14999,7 @@
</object>
</object>
</object>
<object class="Dialog" expanded="0">
<object class="Dialog" expanded="1">
<property name="aui_managed">0</property>
<property name="aui_manager_style">wxAUI_MGR_DEFAULT</property>
<property name="bg"></property>
@ -15450,7 +15450,7 @@
</object>
</object>
</object>
<object class="Dialog" expanded="1">
<object class="Dialog" expanded="0">
<property name="aui_managed">0</property>
<property name="aui_manager_style">wxAUI_MGR_DEFAULT</property>
<property name="bg"></property>
@ -15476,25 +15476,25 @@
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<object class="wxBoxSizer" expanded="1">
<object class="wxBoxSizer" expanded="0">
<property name="minimum_size"></property>
<property name="name">bSizer7</property>
<property name="orient">wxVERTICAL</property>
<property name="permission">none</property>
<object class="sizeritem" expanded="1">
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxEXPAND</property>
<property name="proportion">1</property>
<object class="wxBoxSizer" expanded="1">
<object class="wxBoxSizer" expanded="0">
<property name="minimum_size"></property>
<property name="name">bSizer70</property>
<property name="orient">wxHORIZONTAL</property>
<property name="permission">none</property>
<object class="sizeritem" expanded="1">
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
<property name="proportion">0</property>
<object class="wxStaticText" expanded="1">
<object class="wxStaticText" expanded="0">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
@ -15551,11 +15551,11 @@
<property name="wrap">-1</property>
</object>
</object>
<object class="sizeritem" expanded="1">
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxALIGN_CENTER_VERTICAL</property>
<property name="proportion">0</property>
<object class="wxButton" expanded="1">
<object class="wxButton" expanded="0">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
@ -15624,11 +15624,11 @@
<event name="OnButtonClick">paletteBGColour</event>
</object>
</object>
<object class="sizeritem" expanded="1">
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxALIGN_CENTER_VERTICAL</property>
<property name="proportion">0</property>
<object class="wxButton" expanded="1">
<object class="wxButton" expanded="0">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
@ -15697,11 +15697,11 @@
<event name="OnButtonClick">paletteColour1</event>
</object>
</object>
<object class="sizeritem" expanded="1">
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxALIGN_CENTER_VERTICAL</property>
<property name="proportion">0</property>
<object class="wxButton" expanded="1">
<object class="wxButton" expanded="0">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
@ -15770,11 +15770,11 @@
<event name="OnButtonClick">paletteColour2</event>
</object>
</object>
<object class="sizeritem" expanded="1">
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxALIGN_CENTER_VERTICAL</property>
<property name="proportion">0</property>
<object class="wxButton" expanded="1">
<object class="wxButton" expanded="0">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
@ -15843,11 +15843,11 @@
<event name="OnButtonClick">paletteColour3</event>
</object>
</object>
<object class="sizeritem" expanded="1">
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
<property name="proportion">0</property>
<object class="wxTextCtrl" expanded="1">
<object class="wxTextCtrl" expanded="0">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
@ -15908,11 +15908,11 @@
<event name="OnText">paletteHexChanged</event>
</object>
</object>
<object class="sizeritem" expanded="1">
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxALIGN_CENTER_VERTICAL|wxALL</property>
<property name="proportion">0</property>
<object class="wxButton" expanded="1">
<object class="wxButton" expanded="0">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
@ -15985,5 +15985,237 @@
</object>
</object>
</object>
<object class="Dialog" expanded="1">
<property name="aui_managed">0</property>
<property name="aui_manager_style">wxAUI_MGR_DEFAULT</property>
<property name="bg"></property>
<property name="center">wxBOTH</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="enabled">1</property>
<property name="event_handler">impl_virtual</property>
<property name="extra_style"></property>
<property name="fg"></property>
<property name="font"></property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="maximum_size"></property>
<property name="minimum_size"></property>
<property name="name">imageDialog</property>
<property name="pos"></property>
<property name="size"></property>
<property name="style">wxDEFAULT_DIALOG_STYLE</property>
<property name="subclass">; ; forward_declare</property>
<property name="title"></property>
<property name="tooltip"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property>
<property name="name">bSizer71</property>
<property name="orient">wxHORIZONTAL</property>
<property name="permission">none</property>
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxALL</property>
<property name="proportion">0</property>
<object class="wxStaticText" expanded="0">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">Select an image</property>
<property name="markup">0</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_staticText13</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<property name="wrap">-1</property>
</object>
</object>
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxALL</property>
<property name="proportion">0</property>
<object class="wxComboBox" expanded="0">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="choices"></property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">cboImage</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="selection">-1</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style">wxCB_READONLY</property>
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="value"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
</object>
</object>
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxALL</property>
<property name="proportion">0</property>
<object class="wxButton" expanded="0">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="bitmap"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="current"></property>
<property name="default">0</property>
<property name="default_pane">0</property>
<property name="disabled"></property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="focus"></property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">OK</property>
<property name="margins"></property>
<property name="markup">0</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">btnImageOK</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="position"></property>
<property name="pressed"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass">; ; forward_declare</property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnButtonClick">imageSelected</event>
</object>
</object>
</object>
</object>
</object>
</wxFormBuilder_Project>

View file

@ -2,49 +2,72 @@
<CodeBlocks_layout_file>
<FileVersion major="1" minor="0" />
<ActiveTarget name="Release" />
<File name="image.h" open="0" top="0" tabpos="15" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="common.h" open="1" top="0" tabpos="17" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="189" topLine="0" />
<Cursor1 position="218" topLine="0" />
</Cursor>
</File>
<File name="coreData.cpp" open="1" top="0" tabpos="24" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="hdnesPackEditorpaletteDialog.cpp" open="1" top="0" tabpos="11" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="14659" topLine="14" />
<Cursor1 position="3377" topLine="7" />
</Cursor>
<Folding>
<Collapse line="11" />
<Collapse line="22" />
<Collapse line="7" />
<Collapse line="12" />
<Collapse line="19" />
<Collapse line="24" />
<Collapse line="28" />
<Collapse line="32" />
<Collapse line="81" />
<Collapse line="412" />
<Collapse line="481" />
<Collapse line="29" />
<Collapse line="33" />
<Collapse line="43" />
<Collapse line="49" />
<Collapse line="95" />
<Collapse line="100" />
<Collapse line="105" />
<Collapse line="114" />
<Collapse line="124" />
</Folding>
</File>
<File name="paletteSwap.cpp" open="1" top="0" tabpos="21" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="colourDialogClient.h" open="1" top="0" tabpos="6" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="2412" topLine="0" />
<Cursor1 position="64" topLine="0" />
</Cursor>
<Folding>
<Collapse line="15" />
<Collapse line="66" />
<Collapse line="5" />
</Folding>
</File>
<File name="paletteSwap.h" open="1" top="0" tabpos="20" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="coreData.h" open="1" top="0" tabpos="23" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="230" topLine="0" />
<Cursor1 position="875" topLine="0" />
</Cursor>
<Folding>
<Collapse line="6" />
<Collapse line="8" />
</Folding>
</File>
<File name="paletteDialogClient.h" open="1" top="0" tabpos="25" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="condition.h" open="1" top="0" tabpos="19" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="214" topLine="0" />
<Cursor1 position="150" topLine="0" />
</Cursor>
<Folding>
<Collapse line="4" />
<Collapse line="8" />
</Folding>
</File>
<File name="gameObjNode.cpp" open="1" top="0" tabpos="3" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="8484" topLine="13" />
</Cursor>
<Folding>
<Collapse line="8" />
<Collapse line="39" />
<Collapse line="47" />
<Collapse line="51" />
<Collapse line="56" />
<Collapse line="65" />
<Collapse line="75" />
<Collapse line="177" />
<Collapse line="237" />
<Collapse line="258" />
<Collapse line="276" />
<Collapse line="313" />
</Folding>
</File>
<File name="condition.cpp" open="1" top="0" tabpos="4" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
@ -60,79 +83,50 @@
<Collapse line="178" />
</Folding>
</File>
<File name="gameTile.cpp" open="0" top="0" tabpos="12" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="image.cpp" open="0" top="0" tabpos="18" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="5995" topLine="0" />
<Cursor1 position="359" topLine="0" />
</Cursor>
<Folding>
<Collapse line="7" />
<Collapse line="4" />
<Collapse line="9" />
<Collapse line="12" />
<Collapse line="17" />
</Folding>
</File>
<File name="coreData.cpp" open="1" top="0" tabpos="24" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="455" topLine="0" />
</Cursor>
<Folding>
<Collapse line="11" />
<Collapse line="22" />
<Collapse line="26" />
<Collapse line="42" />
<Collapse line="46" />
<Collapse line="56" />
<Collapse line="65" />
<Collapse line="192" />
<Collapse line="28" />
<Collapse line="32" />
<Collapse line="81" />
<Collapse line="412" />
<Collapse line="481" />
</Folding>
</File>
<File name="coreData.h" open="1" top="0" tabpos="23" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="image.h" open="1" top="0" tabpos="26" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="875" topLine="0" />
<Cursor1 position="158" topLine="0" />
</Cursor>
<Folding>
<Collapse line="8" />
<Collapse line="6" />
</Folding>
</File>
<File name="gameObjNode.h" open="1" top="0" tabpos="22" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="main.h" open="1" top="0" tabpos="16" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1440" topLine="0" />
<Cursor1 position="380" topLine="0" />
</Cursor>
<Folding>
<Collapse line="22" />
<Collapse line="29" />
<Collapse line="12" />
</Folding>
</File>
<File name="mainForm.h" open="1" top="0" tabpos="8" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="hdnesPackEditormainForm.cpp" open="1" top="0" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="18664" topLine="41" />
</Cursor>
<Folding>
<Collapse line="47" />
<Collapse line="331" />
<Collapse line="357" />
<Collapse line="444" />
<Collapse line="474" />
</Folding>
</File>
<File name="gameTile.h" open="0" top="0" tabpos="6" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="960" topLine="0" />
</Cursor>
</File>
<File name="hdnesPackEditorpaletteDialog.h" open="1" top="0" tabpos="10" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1217" topLine="0" />
</Cursor>
<Folding>
<Collapse line="3" />
<Collapse line="18" />
</Folding>
</File>
<File name="tileReference.cpp" open="0" top="0" tabpos="16" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="2617" topLine="0" />
</Cursor>
<Folding>
<Collapse line="5" />
<Collapse line="10" />
<Collapse line="14" />
<Collapse line="29" />
<Collapse line="73" />
</Folding>
</File>
<File name="hdnesPackEditormainForm.cpp" open="1" top="1" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="56737" topLine="599" />
<Cursor1 position="37920" topLine="323" />
</Cursor>
<Folding>
<Collapse line="35" />
@ -160,145 +154,47 @@
<Collapse line="817" />
<Collapse line="827" />
<Collapse line="941" />
<Collapse line="1037" />
<Collapse line="1415" />
<Collapse line="1469" />
<Collapse line="1554" />
<Collapse line="1592" />
<Collapse line="1902" />
<Collapse line="2045" />
<Collapse line="2077" />
<Collapse line="2089" />
<Collapse line="2303" />
<Collapse line="2333" />
<Collapse line="1045" />
<Collapse line="1362" />
<Collapse line="1424" />
<Collapse line="1479" />
<Collapse line="1564" />
<Collapse line="1602" />
<Collapse line="1773" />
<Collapse line="1912" />
<Collapse line="2055" />
<Collapse line="2087" />
<Collapse line="2099" />
<Collapse line="2313" />
<Collapse line="2343" />
<Collapse line="3240" />
</Folding>
</File>
<File name="tileReference.h" open="0" top="0" tabpos="14" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="mainForm.cpp" open="1" top="0" tabpos="7" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="234" topLine="0" />
</Cursor>
</File>
<File name="hdnesPackEditormainForm.h" open="1" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="5927" topLine="17" />
</Cursor>
<Folding>
<Collapse line="49" />
</Folding>
</File>
<File name="hdnesPackEditorreplacementDialog.h" open="1" top="0" tabpos="15" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="808" topLine="0" />
</Cursor>
</File>
<File name="classList.h" open="1" top="0" tabpos="18" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="256" topLine="0" />
</Cursor>
</File>
<File name="hdnesPackEditorreplacementDialog.cpp" open="1" top="0" tabpos="12" split="0" active="1" splitpos="0" zoom_1="-1" zoom_2="0">
<Cursor>
<Cursor1 position="2646" topLine="0" />
</Cursor>
<Folding>
<Collapse line="10" />
<Collapse line="35" />
<Collapse line="47" />
</Folding>
</File>
<File name="gameObjNode.cpp" open="1" top="0" tabpos="3" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="7335" topLine="4" />
</Cursor>
<Folding>
<Collapse line="39" />
<Collapse line="47" />
<Collapse line="51" />
<Collapse line="56" />
<Collapse line="65" />
<Collapse line="75" />
<Collapse line="176" />
<Collapse line="236" />
<Collapse line="257" />
<Collapse line="293" />
</Folding>
</File>
<File name="hdnesPackEditorcolourSelectDialog.h" open="1" top="0" tabpos="5" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="235" topLine="0" />
</Cursor>
<Folding>
<Collapse line="3" />
<Collapse line="15" />
</Folding>
</File>
<File name="hdnesPackEditornewProjectDialog.cpp" open="1" top="0" tabpos="13" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="742" topLine="0" />
</Cursor>
<Folding>
<Collapse line="16" />
</Folding>
</File>
<File name="hdnesPackEditornewProjectDialog.h" open="1" top="0" tabpos="9" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="254" topLine="0" />
</Cursor>
<Folding>
<Collapse line="3" />
<Collapse line="14" />
</Folding>
</File>
<File name="hdnesPackEditorpaletteDialog.cpp" open="1" top="0" tabpos="11" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="3377" topLine="7" />
</Cursor>
<Folding>
<Collapse line="7" />
<Collapse line="12" />
<Collapse line="19" />
<Collapse line="24" />
<Collapse line="29" />
<Collapse line="33" />
<Collapse line="43" />
<Collapse line="49" />
<Collapse line="95" />
<Collapse line="100" />
<Collapse line="105" />
<Collapse line="114" />
<Collapse line="124" />
</Folding>
</File>
<File name="main.h" open="1" top="0" tabpos="16" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="380" topLine="0" />
<Cursor1 position="120372" topLine="20" />
</Cursor>
<Folding>
<Collapse line="12" />
<Collapse line="1161" />
<Collapse line="1296" />
<Collapse line="1352" />
<Collapse line="1359" />
<Collapse line="1714" />
<Collapse line="1849" />
<Collapse line="1909" />
<Collapse line="1920" />
<Collapse line="1978" />
<Collapse line="1990" />
<Collapse line="2018" />
</Folding>
</File>
<File name="common.h" open="1" top="0" tabpos="17" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="paletteDialogClient.h" open="1" top="1" tabpos="25" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="218" topLine="0" />
</Cursor>
</File>
<File name="image.cpp" open="0" top="0" tabpos="18" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="359" topLine="0" />
<Cursor1 position="214" topLine="0" />
</Cursor>
<Folding>
<Collapse line="4" />
<Collapse line="9" />
<Collapse line="12" />
<Collapse line="17" />
</Folding>
</File>
<File name="condition.h" open="1" top="0" tabpos="19" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="150" topLine="0" />
</Cursor>
<Folding>
<Collapse line="8" />
</Folding>
</File>
<File name="main.cpp" open="0" top="0" tabpos="19" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
@ -318,6 +214,56 @@
<Collapse line="118" />
</Folding>
</File>
<File name="hdnesPackEditorpaletteDialog.h" open="1" top="0" tabpos="10" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1217" topLine="0" />
</Cursor>
<Folding>
<Collapse line="3" />
<Collapse line="18" />
</Folding>
</File>
<File name="tileReference.h" open="0" top="0" tabpos="14" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="234" topLine="0" />
</Cursor>
</File>
<File name="hdnesPackEditorreplacementDialog.cpp" open="1" top="0" tabpos="12" split="0" active="1" splitpos="0" zoom_1="-1" zoom_2="0">
<Cursor>
<Cursor1 position="303" topLine="0" />
</Cursor>
<Folding>
<Collapse line="10" />
<Collapse line="35" />
<Collapse line="47" />
</Folding>
</File>
<File name="tileReference.cpp" open="0" top="0" tabpos="16" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="2617" topLine="0" />
</Cursor>
<Folding>
<Collapse line="5" />
<Collapse line="10" />
<Collapse line="14" />
<Collapse line="29" />
<Collapse line="73" />
</Folding>
</File>
<File name="hdnesPackEditorreplacementDialog.h" open="1" top="0" tabpos="15" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="808" topLine="0" />
</Cursor>
</File>
<File name="gameObjNode.h" open="1" top="0" tabpos="22" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1938" topLine="3" />
</Cursor>
<Folding>
<Collapse line="22" />
<Collapse line="29" />
</Folding>
</File>
<File name="hdnesPackEditorcolourSelectDialog.cpp" open="1" top="0" tabpos="14" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="3275" topLine="0" />
@ -328,29 +274,91 @@
<Collapse line="114" />
</Folding>
</File>
<File name="mainForm.cpp" open="1" top="0" tabpos="7" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="paletteSwap.cpp" open="1" top="0" tabpos="21" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="120372" topLine="7" />
<Cursor1 position="2412" topLine="0" />
</Cursor>
<Folding>
<Collapse line="12" />
<Collapse line="1161" />
<Collapse line="1296" />
<Collapse line="1352" />
<Collapse line="1359" />
<Collapse line="1714" />
<Collapse line="1849" />
<Collapse line="1909" />
<Collapse line="1920" />
<Collapse line="1978" />
<Collapse line="15" />
<Collapse line="66" />
</Folding>
</File>
<File name="colourDialogClient.h" open="1" top="0" tabpos="6" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="gameTile.cpp" open="1" top="0" tabpos="27" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="64" topLine="0" />
<Cursor1 position="5995" topLine="0" />
</Cursor>
<Folding>
<Collapse line="5" />
<Collapse line="135" />
<Collapse line="173" />
</Folding>
</File>
<File name="mainForm.h" open="1" top="0" tabpos="8" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="18664" topLine="54" />
</Cursor>
<Folding>
<Collapse line="47" />
<Collapse line="331" />
<Collapse line="357" />
<Collapse line="444" />
<Collapse line="474" />
<Collapse line="506" />
</Folding>
</File>
<File name="hdnesPackEditorcolourSelectDialog.h" open="1" top="0" tabpos="5" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="235" topLine="0" />
</Cursor>
<Folding>
<Collapse line="3" />
<Collapse line="15" />
</Folding>
</File>
<File name="paletteSwap.h" open="1" top="0" tabpos="20" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="230" topLine="0" />
</Cursor>
<Folding>
<Collapse line="6" />
</Folding>
</File>
<File name="hdnesPackEditormainForm.h" open="1" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1098" topLine="17" />
</Cursor>
<Folding>
<Collapse line="50" />
</Folding>
</File>
<File name="hdnesPackEditornewProjectDialog.cpp" open="1" top="0" tabpos="13" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="742" topLine="0" />
</Cursor>
<Folding>
<Collapse line="16" />
</Folding>
</File>
<File name="gameTile.h" open="1" top="0" tabpos="28" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="736" topLine="0" />
</Cursor>
<Folding>
<Collapse line="8" />
<Collapse line="18" />
</Folding>
</File>
<File name="classList.h" open="1" top="0" tabpos="18" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="256" topLine="0" />
</Cursor>
</File>
<File name="hdnesPackEditornewProjectDialog.h" open="1" top="0" tabpos="9" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="254" topLine="0" />
</Cursor>
<Folding>
<Collapse line="3" />
<Collapse line="14" />
</Folding>
</File>
</CodeBlocks_layout_file>

View file

@ -0,0 +1,27 @@
#include "hdnesPackEditorimageDialog.h"
#include "coreData.h"
#include "image.h"
hdnesPackEditorimageDialog::hdnesPackEditorimageDialog( wxWindow* parent )
:
imageDialog( parent )
{
if(coreData::cData){
for(int i = 0; i < coreData::cData->images.size(); ++i){
cboImage->Append(wxString(coreData::cData->images[i]->fileName.c_str()));
}
}
}
void hdnesPackEditorimageDialog::imageSelected( wxCommandEvent& event )
{
if(cboImage->GetSelection() == wxNOT_FOUND) return;
//calculate image location
clientObj->imageSelected(cboImage->GetSelection());
Show(false);
}
void hdnesPackEditorimageDialog::setClient(imageDialogClient* c){
clientObj = c;
}

View file

@ -0,0 +1,31 @@
#ifndef __hdnesPackEditorimageDialog__
#define __hdnesPackEditorimageDialog__
/**
@file
Subclass of imageDialog, which is generated by wxFormBuilder.
*/
#include "mainForm.h"
#include "imageDialogClient.h"
//// end generated include
/** Implementing imageDialog */
class hdnesPackEditorimageDialog : public imageDialog
{
protected:
// Handlers for imageDialog events.
void imageSelected( wxCommandEvent& event );
public:
/** Constructor */
hdnesPackEditorimageDialog( wxWindow* parent );
//// end generated class members
imageDialogClient* clientObj;
void setClient(imageDialogClient* c);
};
#endif // __hdnesPackEditorimageDialog__

View file

@ -3,6 +3,7 @@
#include "hdnesPackEditorcolourSelectDialog.h"
#include "hdnesPackEditorreplacementDialog.h"
#include "hdnesPackEditorpaletteDialog.h"
#include "hdnesPackEditorimageDialog.h"
#include "coreData.h"
#include "main.h"
#include "common.h"
@ -890,11 +891,13 @@ void hdnesPackEditormainForm::gameObjsTreeMenu( wxCommandEvent& event ){
gameObjNode* data = (gameObjNode*)(treeGameObjs->GetItemData(tItmGameObjMenu));
node = data->clone();
newItm = treeGameObjs->AppendItem(treeGameObjs->GetItemParent(tItmGameObjMenu), wxString(node->nodeName), -1, -1, node);
treeGameObjs->Expand(tItmGameObjMenu);
treeGameObjs->Expand(newItm);
treeGameObjs->EditLabel(newItm);
treeGameObjs->SetFocusedItem(newItm);
tItmGameObjMenu = newItm;
renameChildGameObjItemConditions(tItmGameObjMenu);
gameObjSelectedTiles.clear();
refreshNode();
@ -986,6 +989,14 @@ void hdnesPackEditormainForm::gameObjsRawRUp( wxMouseEvent& event ){
menu.AppendSubMenu(submenu, wxT("Select tiles with palette"));
menu.AppendSubMenu(submenu2, wxT("Replace palette"));
}
if(data->images.size() > 0){
wxMenu* submenu3;
submenu3 = new wxMenu(wxT(""));
for(int i = 0; i < data->images.size(); ++i){
submenu3->Append(i + GAME_OBJ_PNL_IMAGE_SELECT_OFFSET, wxString(coreData::cData->images[data->images[i]]->fileName.c_str()));
}
menu.AppendSubMenu(submenu3, wxT("Swap image"));
}
//check right click on a selected tile
bool tileFound = false;
@ -1044,6 +1055,7 @@ void hdnesPackEditormainForm::gameObjsRawMenu( wxCommandEvent& event ){
int clickedY;
hdnesPackEditorreplacementDialog* fp;
hdnesPackEditorpaletteDialog* palD;
hdnesPackEditorimageDialog* imgD;
vector<gameTile> selectedTiles;
int offset;
int uniqueTileID;
@ -1145,6 +1157,7 @@ void hdnesPackEditormainForm::gameObjsRawMenu( wxCommandEvent& event ){
}
}
ndata->updatePalettes();
ndata->updateImages();
gameObjSelectedTiles.clear();
refreshGameObj();
coreData::cData->dataChanged();
@ -1334,7 +1347,7 @@ void hdnesPackEditormainForm::gameObjsRawMenu( wxCommandEvent& event ){
}
}
}
else{
else if(event.GetId() < GAME_OBJ_PNL_IMAGE_SELECT_OFFSET){
offset = event.GetId() - GAME_OBJ_PNL_PALETTE_SELECT_OFFSET2;
paletteToReplace = offset;
ndata = (gameObjNode*)(treeGameObjs->GetItemData(tItmGameObjMenu));
@ -1342,7 +1355,13 @@ void hdnesPackEditormainForm::gameObjsRawMenu( wxCommandEvent& event ){
palD->setPalette(ndata->palettes[offset]);
palD->setClient(this);
palD->Show(true);
}
else{
offset = event.GetId() - GAME_OBJ_PNL_IMAGE_SELECT_OFFSET;
imageToReplace = offset;
imgD = new hdnesPackEditorimageDialog(this);
imgD->setClient(this);
imgD->Show(true);
}
drawGameObjEdits();
}
@ -1351,6 +1370,22 @@ void hdnesPackEditormainForm::gameObjsRawMenu( wxCommandEvent& event ){
}
}
void hdnesPackEditormainForm::imageSelected(int img){
gameObjNode* ndata;
ndata = (gameObjNode*)(treeGameObjs->GetItemData(tItmGameObjMenu));
for(int i = 0; i < ndata->tiles.size(); ++i){
for(int j = 0; j < ndata->tiles[i].aniFrames.size(); ++j){
if(ndata->tiles[i].aniFrames[j].hasReplacement && ndata->tiles[i].aniFrames[j].img == ndata->images[imageToReplace]){
ndata->tiles[i].aniFrames[j].img = img;
}
}
}
ndata->updateImages();
refreshGameObj();
coreData::cData->dataChanged();
}
void hdnesPackEditormainForm::paletteSelected(Uint8* p){
gameObjNode* ndata;
ndata = (gameObjNode*)(treeGameObjs->GetItemData(tItmGameObjMenu));
@ -1368,7 +1403,22 @@ void hdnesPackEditormainForm::paletteSelected(Uint8* p){
ndata->tiles[i].id.palette[3] = p[3];
}
ndata->tiles[i].id.palette[0] = p[0];
for(int j = 0; j < ndata->tiles[i].conditions.size(); ++j){
if(ndata->tiles[i].conditions[j].id.palette[0] == ndata->palettes[paletteToReplace][0]
&& ndata->tiles[i].conditions[j].id.palette[1] == ndata->palettes[paletteToReplace][1]
&& ndata->tiles[i].conditions[j].id.palette[2] == ndata->palettes[paletteToReplace][2]
&& ndata->tiles[i].conditions[j].id.palette[3] == ndata->palettes[paletteToReplace][3]
){
ndata->tiles[i].conditions[j].id.palette[0] = p[0];
ndata->tiles[i].conditions[j].id.palette[1] = p[1];
ndata->tiles[i].conditions[j].id.palette[2] = p[2];
ndata->tiles[i].conditions[j].id.palette[3] = p[3];
}
}
}
for(int i = 0; i < ndata->conditions.size(); ++i){
if(ndata->conditions[i].id.palette[0] == ndata->palettes[paletteToReplace][0]
&& ndata->conditions[i].id.palette[1] == ndata->palettes[paletteToReplace][1]
@ -1445,6 +1495,7 @@ void hdnesPackEditormainForm::setReplacement(int imageID, int x, int y){
ndata->tiles[gameObjSelectedTiles[k]] = t;
}
ndata->updateImages();
refreshGameObj();
coreData::cData->dataChanged();

View file

@ -30,6 +30,7 @@
#define GAME_OBJ_PNL_PALETTE_SELECT_OFFSET 100
#define GAME_OBJ_PNL_PALETTE_SELECT_OFFSET2 200
#define GAME_OBJ_PNL_IMAGE_SELECT_OFFSET 300
/**
@file
@ -40,13 +41,14 @@ Subclass of mainForm, which is generated by wxFormBuilder.
#include "mainForm.h"
#include "colourDialogClient.h"
#include "paletteDialogClient.h"
#include "imageDialogClient.h"
#include "gameObjNode.h"
#include "classList.h"
//// end generated include
/** Implementing mainForm */
class hdnesPackEditormainForm : public mainForm, public colourDialogClient, public paletteDialogClient
class hdnesPackEditormainForm : public mainForm, public colourDialogClient, public paletteDialogClient, public imageDialogClient
{
protected:
// Handlers for mainForm events.
@ -151,6 +153,7 @@ class hdnesPackEditormainForm : public mainForm, public colourDialogClient, publ
Uint16 colourSelectSource;
Uint32 tileCnt;
int paletteToReplace;
int imageToReplace;
void initGeneral();
void configGeneral(string lineHdr, string lineTail);
@ -198,6 +201,7 @@ class hdnesPackEditormainForm : public mainForm, public colourDialogClient, publ
void romViewPaletteToText();
void romViewMenu( wxCommandEvent& event );
virtual void paletteSelected(Uint8* p);
virtual void imageSelected(int i);
//--end rom view session
//--game objs session

View file

@ -0,0 +1,11 @@
#ifndef IMAGEDIALOGCLIENT_H_INCLUDED
#define IMAGEDIALOGCLIENT_H_INCLUDED
class imageDialogClient
{
public:
virtual ~imageDialogClient(){};
virtual void imageSelected(int i) = 0;
};
#endif // IMAGEDIALOGCLIENT_H_INCLUDED

View file

@ -1986,3 +1986,38 @@ paletteDialog::~paletteDialog()
btnPaletteOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( paletteDialog::paletteSelected ), NULL, this );
}
imageDialog::imageDialog( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
this->SetSizeHints( wxDefaultSize, wxDefaultSize );
wxBoxSizer* bSizer71;
bSizer71 = new wxBoxSizer( wxHORIZONTAL );
m_staticText13 = new wxStaticText( this, wxID_ANY, wxT("Select an image"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText13->Wrap( -1 );
bSizer71->Add( m_staticText13, 0, wxALL, 5 );
cboImage = new wxComboBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY );
bSizer71->Add( cboImage, 0, wxALL, 5 );
btnImageOK = new wxButton( this, wxID_ANY, wxT("OK"), wxDefaultPosition, wxDefaultSize, 0 );
bSizer71->Add( btnImageOK, 0, wxALL, 5 );
this->SetSizer( bSizer71 );
this->Layout();
bSizer71->Fit( this );
this->Centre( wxBOTH );
// Connect Events
btnImageOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( imageDialog::imageSelected ), NULL, this );
}
imageDialog::~imageDialog()
{
// Disconnect Events
btnImageOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( imageDialog::imageSelected ), NULL, this );
}

View file

@ -500,3 +500,26 @@ class paletteDialog : public wxDialog
};
///////////////////////////////////////////////////////////////////////////////
/// Class imageDialog
///////////////////////////////////////////////////////////////////////////////
class imageDialog : public wxDialog
{
private:
protected:
wxStaticText* m_staticText13;
wxComboBox* cboImage;
wxButton* btnImageOK;
// Virtual event handlers, overide them in your derived class
virtual void imageSelected( wxCommandEvent& event ) { event.Skip(); }
public:
imageDialog( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE );
~imageDialog();
};