Added function to replace palette

This commit is contained in:
mkwong98 2020-11-21 17:05:01 +08:00
parent e06fa8acf8
commit e7860abb5f
12 changed files with 1183 additions and 134 deletions

View file

@ -1,3 +1,4 @@
#include "coreData.h"
#include "gameObjNode.h"
#include "gameTile.h"
#include "paletteSwap.h"
@ -302,7 +303,7 @@ string gameObjNode::writeConditionNames(){
string gameObjNode::writeLine(){
stringstream stream;
stream << fileName << "," << brightness << "," << hScrollRate << "," << vScrollRate << "," << (showBehindBgSprites ? "Y" : "N") ;
stream << fileName << "," << brightness << "," << hScrollRate << "," << vScrollRate << "," << (coreData::cData->verNo >= 106 ? (showBehindBgSprites ? "0" : "10") : (showBehindBgSprites ? "Y" : "N")) ;
return stream.str();
}

View file

@ -78,6 +78,8 @@
<Unit filename="hdnesPackEditormainForm.h" />
<Unit filename="hdnesPackEditornewProjectDialog.cpp" />
<Unit filename="hdnesPackEditornewProjectDialog.h" />
<Unit filename="hdnesPackEditorpaletteDialog.cpp" />
<Unit filename="hdnesPackEditorpaletteDialog.h" />
<Unit filename="hdnesPackEditorreplacementDialog.cpp" />
<Unit filename="hdnesPackEditorreplacementDialog.h" />
<Unit filename="image.cpp" />
@ -86,6 +88,9 @@
<Unit filename="main.h" />
<Unit filename="mainForm.cpp" />
<Unit filename="mainForm.h" />
<Unit filename="paletteDialogClient.h">
<Option target="&lt;{~None~}&gt;" />
</Unit>
<Unit filename="paletteSwap.cpp" />
<Unit filename="paletteSwap.h" />
<Unit filename="tileReference.cpp" />

View file

@ -7245,14 +7245,15 @@
1561782682 d:\work\hdnes\trunk\hdnespackeditor\image.h
"common.h"
1585990029 d:\work\hdnes\trunk\hdnespackeditor\hdnespackeditormainform.h
1605864412 d:\work\hdnes\trunk\hdnespackeditor\hdnespackeditormainform.h
"common.h"
"mainForm.h"
"colourDialogClient.h"
"paletteDialogClient.h"
"gameObjNode.h"
"classList.h"
1585989500 d:\work\hdnes\trunk\hdnespackeditor\mainform.h
1605854357 d:\work\hdnes\trunk\hdnespackeditor\mainform.h
<wx/artprov.h>
<wx/xrc/xmlres.h>
<wx/string.h>
@ -7518,7 +7519,8 @@
1561782682 d:\work\hdnes\trunk\hdnespackeditor\hdnespackeditornewprojectdialog.h
"mainForm.h"
1605196382 source:d:\work\hdnes\trunk\hdnespackeditor\gameobjnode.cpp
1605370594 source:d:\work\hdnes\trunk\hdnespackeditor\gameobjnode.cpp
"coreData.h"
"gameObjNode.h"
"gameTile.h"
"paletteSwap.h"
@ -7572,11 +7574,12 @@
"wx/gdicmn.h"
"wx/dialog.h"
1605196382 source:d:\work\hdnes\trunk\hdnespackeditor\hdnespackeditormainform.cpp
1605888118 source:d:\work\hdnes\trunk\hdnespackeditor\hdnespackeditormainform.cpp
"hdnesPackEditormainForm.h"
"hdnesPackEditornewProjectDialog.h"
"hdnesPackEditorcolourSelectDialog.h"
"hdnesPackEditorreplacementDialog.h"
"hdnesPackEditorpaletteDialog.h"
"coreData.h"
"main.h"
"common.h"
@ -7661,7 +7664,7 @@
"hdnesPackEditormainForm.h"
"main.h"
1585989500 source:d:\work\hdnes\trunk\hdnespackeditor\mainform.cpp
1605855896 source:d:\work\hdnes\trunk\hdnespackeditor\mainform.cpp
"mainForm.h"
1604761296 source:d:\work\hdnes\trunk\hdnespackeditor\paletteswap.cpp
@ -7673,3 +7676,17 @@
"coreData.h"
"main.h"
1605863515 d:\work\hdnes\trunk\hdnespackeditor\hdnespackeditorpalettedialog.h
"common.h"
"mainForm.h"
"colourDialogClient.h"
"paletteDialogClient.h"
"hdnesPackEditorcolourSelectDialog.h"
1605863618 source:d:\work\hdnes\trunk\hdnespackeditor\hdnespackeditorpalettedialog.cpp
"hdnesPackEditorpaletteDialog.h"
"coreData.h"
"main.h"
1605862953 d:\work\hdnes\trunk\hdnespackeditor\palettedialogclient.h

View file

@ -10652,7 +10652,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>
@ -10678,7 +10678,7 @@
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<object class="wxBoxSizer" expanded="0">
<object class="wxBoxSizer" expanded="1">
<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="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>
@ -11130,7 +11130,7 @@
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnInitDialog">colourSelectInit</event>
<object class="wxBoxSizer" expanded="0">
<object class="wxBoxSizer" expanded="1">
<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="0">
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag"></property>
<property name="proportion">0</property>
<object class="wxBoxSizer" expanded="0">
<object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property>
<property name="name">bSizer11</property>
<property name="orient">wxHORIZONTAL</property>
@ -15450,5 +15450,540 @@
</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">paletteDialog</property>
<property name="pos"></property>
<property name="size">574,68</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">bSizer7</property>
<property name="orient">wxVERTICAL</property>
<property name="permission">none</property>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND</property>
<property name="proportion">1</property>
<object class="wxBoxSizer" expanded="1">
<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">
<property name="border">5</property>
<property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
<property name="proportion">0</property>
<object class="wxStaticText" expanded="1">
<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">Choose a new palette: </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_staticText10</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="1">
<property name="border">5</property>
<property name="flag">wxALIGN_CENTER_VERTICAL</property>
<property name="proportion">0</property>
<object class="wxButton" expanded="1">
<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">BG</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">btnPaletteBGColour</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">50,-1</property>
<property name="style"></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="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnButtonClick">paletteBGColour</event>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxALIGN_CENTER_VERTICAL</property>
<property name="proportion">0</property>
<object class="wxButton" expanded="1">
<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">1</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">btnPaletteColour1</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">50,-1</property>
<property name="style"></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="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnButtonClick">paletteColour1</event>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxALIGN_CENTER_VERTICAL</property>
<property name="proportion">0</property>
<object class="wxButton" expanded="1">
<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">2</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">btnPaletteColour2</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">50,-1</property>
<property name="style"></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="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnButtonClick">paletteColour2</event>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxALIGN_CENTER_VERTICAL</property>
<property name="proportion">0</property>
<object class="wxButton" expanded="1">
<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">3</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">btnPaletteColour3</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">50,-1</property>
<property name="style"></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="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnButtonClick">paletteColour3</event>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
<property name="proportion">0</property>
<object class="wxTextCtrl" expanded="1">
<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="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="maxlength">8</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">txtPaletteHex</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="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>
<event name="OnText">paletteHexChanged</event>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxALIGN_CENTER_VERTICAL|wxALL</property>
<property name="proportion">0</property>
<object class="wxButton" expanded="1">
<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">btnPaletteOK</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">paletteSelected</event>
</object>
</object>
</object>
</object>
</object>
</object>
</object>
</wxFormBuilder_Project>

View file

@ -2,54 +2,65 @@
<CodeBlocks_layout_file>
<FileVersion major="1" minor="0" />
<ActiveTarget name="Release" />
<File name="image.h" open="1" top="0" tabpos="15" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="image.h" open="0" top="0" tabpos="15" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="189" topLine="0" />
</Cursor>
</File>
<File name="mainForm.h" open="1" top="0" tabpos="17" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<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="76" topLine="0" />
<Cursor1 position="14659" topLine="14" />
</Cursor>
<Folding>
<Collapse line="331" />
<Collapse line="357" />
<Collapse line="444" />
<Collapse line="11" />
<Collapse line="22" />
<Collapse line="24" />
<Collapse line="28" />
<Collapse line="32" />
<Collapse line="81" />
<Collapse line="412" />
<Collapse line="481" />
</Folding>
</File>
<File name="paletteSwap.cpp" open="1" top="0" tabpos="8" 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="2412" topLine="4" />
<Cursor1 position="2412" topLine="0" />
</Cursor>
<Folding>
<Collapse line="15" />
<Collapse line="66" />
</Folding>
</File>
<File name="paletteSwap.h" open="1" top="0" tabpos="7" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<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="436" topLine="0" />
</Cursor>
</File>
<File name="hdnesPackEditormainForm.h" open="1" top="0" tabpos="4" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="7617" topLine="21" />
<Cursor1 position="230" topLine="0" />
</Cursor>
<Folding>
<Collapse line="47" />
<Collapse line="6" />
</Folding>
</File>
<File name="hdnesPackEditorreplacementDialog.h" open="0" top="0" tabpos="18" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="paletteDialogClient.h" open="1" top="0" tabpos="25" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1177" topLine="0" />
<Cursor1 position="214" topLine="0" />
</Cursor>
<Folding>
<Collapse line="4" />
</Folding>
</File>
<File name="mainForm.cpp" open="0" top="0" tabpos="16" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="condition.cpp" open="1" top="0" tabpos="4" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="888" topLine="356" />
<Cursor1 position="45" topLine="0" />
</Cursor>
<Folding>
<Collapse line="15" />
<Collapse line="53" />
<Collapse line="108" />
<Collapse line="126" />
<Collapse line="161" />
<Collapse line="178" />
</Folding>
</File>
<File name="gameTile.cpp" open="1" top="0" tabpos="12" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="gameTile.cpp" open="0" top="0" tabpos="12" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="5995" topLine="0" />
</Cursor>
@ -64,22 +75,52 @@
<Collapse line="192" />
</Folding>
</File>
<File name="gameObjNode.h" open="1" top="0" tabpos="3" 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="1054" topLine="24" />
<Cursor1 position="875" topLine="0" />
</Cursor>
<Folding>
<Collapse line="8" />
</Folding>
</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="1440" topLine="0" />
</Cursor>
<Folding>
<Collapse line="22" />
<Collapse line="29" />
</Folding>
</File>
<File name="main.h" open="0" top="0" tabpos="17" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<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="380" topLine="0" />
<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="tileReference.cpp" open="1" top="0" tabpos="16" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<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="2617" topLine="9" />
<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" />
@ -89,40 +130,159 @@
<Collapse line="73" />
</Folding>
</File>
<File name="coreData.cpp" open="1" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<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="2901" topLine="23" />
<Cursor1 position="56737" topLine="599" />
</Cursor>
<Folding>
<Collapse line="11" />
<Collapse line="22" />
<Collapse line="24" />
<Collapse line="28" />
<Collapse line="32" />
<Collapse line="81" />
<Collapse line="412" />
<Collapse line="35" />
<Collapse line="86" />
<Collapse line="89" />
<Collapse line="92" />
<Collapse line="104" />
<Collapse line="154" />
<Collapse line="205" />
<Collapse line="214" />
<Collapse line="250" />
<Collapse line="264" />
<Collapse line="310" />
<Collapse line="320" />
<Collapse line="328" />
<Collapse line="340" />
<Collapse line="358" />
<Collapse line="363" />
<Collapse line="514" />
<Collapse line="613" />
<Collapse line="636" />
<Collapse line="754" />
<Collapse line="767" />
<Collapse line="788" />
<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" />
</Folding>
</File>
<File name="classList.h" open="0" top="0" tabpos="22" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<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="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="hdnesPackEditorcolourSelectDialog.cpp" open="0" top="0" tabpos="15" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<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="3921" topLine="0" />
<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="1" tabpos="9" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<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="755" topLine="3" />
<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="34" />
<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="image.cpp" open="1" top="0" tabpos="18" 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="380" topLine="0" />
</Cursor>
<Folding>
<Collapse line="12" />
</Folding>
</File>
<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="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" />
</Cursor>
@ -133,9 +293,17 @@
<Collapse line="17" />
</Folding>
</File>
<File name="main.cpp" open="1" top="0" tabpos="19" 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="565" topLine="25" />
<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">
<Cursor>
<Cursor1 position="565" topLine="6" />
</Cursor>
<Folding>
<Collapse line="10" />
@ -150,85 +318,39 @@
<Collapse line="118" />
</Folding>
</File>
<File name="tileReference.h" open="1" top="0" tabpos="14" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<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="234" topLine="2" />
</Cursor>
</File>
<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="65669" topLine="0" />
<Cursor1 position="3275" topLine="0" />
</Cursor>
<Folding>
<Collapse line="31" />
<Collapse line="32" />
<Collapse line="34" />
<Collapse line="85" />
<Collapse line="88" />
<Collapse line="91" />
<Collapse line="103" />
<Collapse line="766" />
<Collapse line="89" />
<Collapse line="98" />
<Collapse line="114" />
</Folding>
</File>
<File name="coreData.h" open="1" top="0" tabpos="10" 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="776" topLine="39" />
</Cursor>
</File>
<File name="condition.h" open="1" top="0" tabpos="5" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="311" topLine="0" />
</Cursor>
</File>
<File name="gameTile.h" open="1" top="0" tabpos="6" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="960" topLine="25" />
</Cursor>
</File>
<File name="hdnesPackEditorcolourSelectDialog.h" open="0" top="0" tabpos="20" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="382" topLine="0" />
</Cursor>
</File>
<File name="hdnesPackEditornewProjectDialog.cpp" open="0" top="0" tabpos="13" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="742" topLine="0" />
</Cursor>
</File>
<File name="common.h" open="1" top="0" tabpos="11" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="171" topLine="0" />
</Cursor>
</File>
<File name="condition.cpp" open="1" top="0" tabpos="13" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="5867" topLine="103" />
<Cursor1 position="120372" topLine="7" />
</Cursor>
<Folding>
<Collapse line="6" />
<Collapse line="11" />
<Collapse line="29" />
<Collapse line="138" />
<Collapse line="161" />
<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" />
</Folding>
</File>
<File name="hdnesPackEditornewProjectDialog.h" open="0" top="0" tabpos="19" 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="229" topLine="0" />
</Cursor>
</File>
<File name="colourDialogClient.h" open="0" top="0" tabpos="23" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="235" topLine="0" />
</Cursor>
</File>
<File name="hdnesPackEditorreplacementDialog.cpp" open="0" top="0" tabpos="14" split="0" active="1" splitpos="0" zoom_1="-1" zoom_2="0">
<Cursor>
<Cursor1 position="2646" topLine="0" />
<Cursor1 position="64" topLine="0" />
</Cursor>
<Folding>
<Collapse line="35" />
<Collapse line="47" />
<Collapse line="5" />
</Folding>
</File>
</CodeBlocks_layout_file>

View file

@ -2,6 +2,7 @@
#include "hdnesPackEditornewProjectDialog.h"
#include "hdnesPackEditorcolourSelectDialog.h"
#include "hdnesPackEditorreplacementDialog.h"
#include "hdnesPackEditorpaletteDialog.h"
#include "coreData.h"
#include "main.h"
#include "common.h"
@ -968,6 +969,8 @@ void hdnesPackEditormainForm::gameObjsRawRUp( wxMouseEvent& event ){
if(data->palettes.size() > 0){
wxMenu* submenu;
submenu = new wxMenu(wxT(""));
wxMenu* submenu2;
submenu2 = new wxMenu(wxT(""));
stringstream s;
for(int i = 0; i < data->palettes.size(); ++i){
s.str(std::string());
@ -978,9 +981,10 @@ void hdnesPackEditormainForm::gameObjsRawRUp( wxMouseEvent& event ){
s << main::intToHex(data->palettes[i][3]);
submenu->Append(i + GAME_OBJ_PNL_PALETTE_SELECT_OFFSET, wxString(s.str().c_str()));
submenu2->Append(i + GAME_OBJ_PNL_PALETTE_SELECT_OFFSET2, wxString(s.str().c_str()));
}
menu.AppendSubMenu(submenu, wxT("Select tiles with palette"));
menu.AppendSubMenu(submenu2, wxT("Replace palette"));
}
//check right click on a selected tile
@ -1039,6 +1043,7 @@ void hdnesPackEditormainForm::gameObjsRawMenu( wxCommandEvent& event ){
int clickedX;
int clickedY;
hdnesPackEditorreplacementDialog* fp;
hdnesPackEditorpaletteDialog* palD;
vector<gameTile> selectedTiles;
int offset;
int uniqueTileID;
@ -1315,18 +1320,30 @@ void hdnesPackEditormainForm::gameObjsRawMenu( wxCommandEvent& event ){
default:
if(event.GetId() >= GAME_OBJ_PNL_PALETTE_SELECT_OFFSET){
offset = event.GetId() - GAME_OBJ_PNL_PALETTE_SELECT_OFFSET;
gameObjSelectedTiles.clear();
ndata = (gameObjNode*)(treeGameObjs->GetItemData(tItmGameObjMenu));
for(int i = 0; i < ndata->tiles.size(); ++i){
if(ndata->tiles[i].id.palette[0] == ndata->palettes[offset][0]
&& ndata->tiles[i].id.palette[1] == ndata->palettes[offset][1]
&& ndata->tiles[i].id.palette[2] == ndata->palettes[offset][2]
&& ndata->tiles[i].id.palette[3] == ndata->palettes[offset][3]
){
gameObjSelectedTiles.push_back(i);
if(event.GetId() < GAME_OBJ_PNL_PALETTE_SELECT_OFFSET2){
offset = event.GetId() - GAME_OBJ_PNL_PALETTE_SELECT_OFFSET;
gameObjSelectedTiles.clear();
for(int i = 0; i < ndata->tiles.size(); ++i){
if(ndata->tiles[i].id.palette[0] == ndata->palettes[offset][0]
&& ndata->tiles[i].id.palette[1] == ndata->palettes[offset][1]
&& ndata->tiles[i].id.palette[2] == ndata->palettes[offset][2]
&& ndata->tiles[i].id.palette[3] == ndata->palettes[offset][3]
){
gameObjSelectedTiles.push_back(i);
}
}
}
else{
offset = event.GetId() - GAME_OBJ_PNL_PALETTE_SELECT_OFFSET2;
paletteToReplace = offset;
ndata = (gameObjNode*)(treeGameObjs->GetItemData(tItmGameObjMenu));
palD = new hdnesPackEditorpaletteDialog(this);
palD->setPalette(ndata->palettes[offset]);
palD->setClient(this);
palD->Show(true);
}
drawGameObjEdits();
}
@ -1334,6 +1351,68 @@ void hdnesPackEditormainForm::gameObjsRawMenu( wxCommandEvent& event ){
}
}
void hdnesPackEditormainForm::paletteSelected(Uint8* p){
gameObjNode* ndata;
ndata = (gameObjNode*)(treeGameObjs->GetItemData(tItmGameObjMenu));
if(p[0] != 0xff){
ndata->bgColour = p[0];
}
for(int i = 0; i < ndata->tiles.size(); ++i){
if(ndata->tiles[i].id.palette[0] == ndata->palettes[paletteToReplace][0]
&& ndata->tiles[i].id.palette[1] == ndata->palettes[paletteToReplace][1]
&& ndata->tiles[i].id.palette[2] == ndata->palettes[paletteToReplace][2]
&& ndata->tiles[i].id.palette[3] == ndata->palettes[paletteToReplace][3]
){
ndata->tiles[i].id.palette[1] = p[1];
ndata->tiles[i].id.palette[2] = p[2];
ndata->tiles[i].id.palette[3] = p[3];
}
ndata->tiles[i].id.palette[0] = p[0];
}
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]
&& ndata->conditions[i].id.palette[2] == ndata->palettes[paletteToReplace][2]
&& ndata->conditions[i].id.palette[3] == ndata->palettes[paletteToReplace][3]
){
ndata->conditions[i].id.palette[0] = p[0];
ndata->conditions[i].id.palette[1] = p[1];
ndata->conditions[i].id.palette[2] = p[2];
ndata->conditions[i].id.palette[3] = p[3];
}
}
for(int i = 0; i < ndata->swaps.size(); ++i){
for(int j = 0; j < ndata->swaps[i].orgPalettes.size(); ++j){
if(ndata->swaps[i].orgPalettes[j][0] == ndata->palettes[paletteToReplace][0]
&& ndata->swaps[i].orgPalettes[j][1] == ndata->palettes[paletteToReplace][1]
&& ndata->swaps[i].orgPalettes[j][2] == ndata->palettes[paletteToReplace][2]
&& ndata->swaps[i].orgPalettes[j][3] == ndata->palettes[paletteToReplace][3]
){
ndata->swaps[i].orgPalettes[j][0] = p[0];
ndata->swaps[i].orgPalettes[j][1] = p[1];
ndata->swaps[i].orgPalettes[j][2] = p[2];
ndata->swaps[i].orgPalettes[j][3] = p[3];
}
}
for(int j = 0; j < ndata->swaps[i].newPalettes.size(); ++j){
if(ndata->swaps[i].newPalettes[j][0] == ndata->palettes[paletteToReplace][0]
&& ndata->swaps[i].newPalettes[j][1] == ndata->palettes[paletteToReplace][1]
&& ndata->swaps[i].newPalettes[j][2] == ndata->palettes[paletteToReplace][2]
&& ndata->swaps[i].newPalettes[j][3] == ndata->palettes[paletteToReplace][3]
){
ndata->swaps[i].newPalettes[j][0] = p[0];
ndata->swaps[i].newPalettes[j][1] = p[1];
ndata->swaps[i].newPalettes[j][2] = p[2];
ndata->swaps[i].newPalettes[j][3] = p[3];
}
}
}
ndata->updatePalettes();
refreshGameObj();
coreData::cData->dataChanged();
}
void hdnesPackEditormainForm::setReplacement(int imageID, int x, int y){
gameObjNode* ndata;
ndata = (gameObjNode*)(treeGameObjs->GetItemData(tItmGameObjMenu));

View file

@ -29,6 +29,7 @@
#define GAME_OBJ_PNL_VFLIP2 15
#define GAME_OBJ_PNL_PALETTE_SELECT_OFFSET 100
#define GAME_OBJ_PNL_PALETTE_SELECT_OFFSET2 200
/**
@file
@ -38,13 +39,14 @@ Subclass of mainForm, which is generated by wxFormBuilder.
#include "common.h"
#include "mainForm.h"
#include "colourDialogClient.h"
#include "paletteDialogClient.h"
#include "gameObjNode.h"
#include "classList.h"
//// end generated include
/** Implementing mainForm */
class hdnesPackEditormainForm : public mainForm, public colourDialogClient
class hdnesPackEditormainForm : public mainForm, public colourDialogClient, public paletteDialogClient
{
protected:
// Handlers for mainForm events.
@ -148,6 +150,7 @@ class hdnesPackEditormainForm : public mainForm, public colourDialogClient
Uint16 colourSelectSource;
Uint32 tileCnt;
int paletteToReplace;
void initGeneral();
void configGeneral(string lineHdr, string lineTail);
@ -194,6 +197,7 @@ class hdnesPackEditormainForm : public mainForm, public colourDialogClient
void showROMView();
void romViewPaletteToText();
void romViewMenu( wxCommandEvent& event );
virtual void paletteSelected(Uint8* p);
//--end rom view session
//--game objs session

View file

@ -0,0 +1,128 @@
#include "hdnesPackEditorpaletteDialog.h"
#include "coreData.h"
#include "main.h"
hdnesPackEditorpaletteDialog::hdnesPackEditorpaletteDialog( wxWindow* parent )
:
paletteDialog( parent )
{
}
void hdnesPackEditorpaletteDialog::paletteBGColour( wxCommandEvent& event )
{
if(colours[0] == 0xff) return;
openColourDialog(0);
}
void hdnesPackEditorpaletteDialog::paletteColour1( wxCommandEvent& event )
{
openColourDialog(1);
}
void hdnesPackEditorpaletteDialog::paletteColour2( wxCommandEvent& event )
{
openColourDialog(2);
}
void hdnesPackEditorpaletteDialog::paletteColour3( wxCommandEvent& event )
{
openColourDialog(3);
}
void hdnesPackEditorpaletteDialog::openColourDialog(Uint8 clientID){
if(coreData::cData){
buttonClicked = clientID;
hdnesPackEditorcolourSelectDialog* fp = new hdnesPackEditorcolourSelectDialog(this);
fp->setClientObj(this);
fp->Show(true);
}
}
void hdnesPackEditorpaletteDialog::paletteHexChanged( wxCommandEvent& event )
{
string v = txtPaletteHex->GetValue().ToStdString();
main::hexToByteArray(v, (Uint8*)colours);
refreshButtonColour();
}
void hdnesPackEditorpaletteDialog::refreshButtonColour(){
if(colours[0] >= 64) colours[0] = 0xff;
if(colours[1] >= 64) colours[1] = 0x0f;
if(colours[2] >= 64) colours[2] = 0x0f;
if(colours[3] >= 64) colours[3] = 0x0f;
if(colours[0] == 0xff){
btnPaletteBGColour->SetBackgroundColour(wxColour(128,128,128));
btnPaletteBGColour->SetForegroundColour(wxColour(128,128,128));
}
else{
btnPaletteBGColour->SetBackgroundColour(coreData::cData->palette[colours[0]]);
if(coreData::cData->palette[colours[0]].Red() + coreData::cData->palette[colours[0]].Green() + coreData::cData->palette[colours[0]].Blue() > 256){
btnPaletteBGColour->SetForegroundColour(wxColour(0,0,0));
}
else{
btnPaletteBGColour->SetForegroundColour(wxColour(255,255,255));
}
}
btnPaletteColour1->SetBackgroundColour(coreData::cData->palette[colours[1]]);
if(coreData::cData->palette[colours[1]].Red() + coreData::cData->palette[colours[1]].Green() + coreData::cData->palette[colours[1]].Blue() > 256){
btnPaletteColour1->SetForegroundColour(wxColour(0,0,0));
}
else{
btnPaletteColour1->SetForegroundColour(wxColour(255,255,255));
}
btnPaletteColour2->SetBackgroundColour(coreData::cData->palette[colours[2]]);
if(coreData::cData->palette[colours[2]].Red() + coreData::cData->palette[colours[2]].Green() + coreData::cData->palette[colours[2]].Blue() > 256){
btnPaletteColour2->SetForegroundColour(wxColour(0,0,0));
}
else{
btnPaletteColour2->SetForegroundColour(wxColour(255,255,255));
}
btnPaletteColour3->SetBackgroundColour(coreData::cData->palette[colours[3]]);
if(coreData::cData->palette[colours[3]].Red() + coreData::cData->palette[colours[3]].Green() + coreData::cData->palette[colours[3]].Blue() > 256){
btnPaletteColour3->SetForegroundColour(wxColour(0,0,0));
}
else{
btnPaletteColour3->SetForegroundColour(wxColour(255,255,255));
}
}
void hdnesPackEditorpaletteDialog::paletteSelected( wxCommandEvent& event )
{
clientObj->paletteSelected(colours);
Show(false);
}
void hdnesPackEditorpaletteDialog::colourSelected(Uint8 selectedColour){
colours[buttonClicked] = selectedColour;
paletteToText();
}
void hdnesPackEditorpaletteDialog::setPalette(array<Uint8, 4> p){
colours[0] = p[0];
colours[1] = p[1];
colours[2] = p[2];
colours[3] = p[3];
paletteToText();
}
void hdnesPackEditorpaletteDialog::paletteToText(){
wxString v;
v = wxString((main::intToHex(colours[0])
+ main::intToHex(colours[1])
+ main::intToHex(colours[2])
+ main::intToHex(colours[3])).c_str());
txtPaletteHex->ChangeValue(v);
refreshButtonColour();
}
void hdnesPackEditorpaletteDialog::setClient(paletteDialogClient* c){
clientObj = c;
}

View file

@ -0,0 +1,45 @@
#ifndef __hdnesPackEditorpaletteDialog__
#define __hdnesPackEditorpaletteDialog__
/**
@file
Subclass of paletteDialog, which is generated by wxFormBuilder.
*/
#include "common.h"
#include "mainForm.h"
#include "colourDialogClient.h"
#include "paletteDialogClient.h"
#include "hdnesPackEditorcolourSelectDialog.h"
//// end generated include
/** Implementing paletteDialog */
class hdnesPackEditorpaletteDialog : public paletteDialog, public colourDialogClient
{
protected:
// Handlers for paletteDialog events.
void paletteBGColour( wxCommandEvent& event );
void paletteColour1( wxCommandEvent& event );
void paletteColour2( wxCommandEvent& event );
void paletteColour3( wxCommandEvent& event );
void paletteHexChanged( wxCommandEvent& event );
void paletteSelected( wxCommandEvent& event );
public:
/** Constructor */
hdnesPackEditorpaletteDialog( wxWindow* parent );
//// end generated class members
virtual void colourSelected(Uint8 selectedColour);
Uint8 colours[4];
Uint8 buttonClicked;
paletteDialogClient* clientObj;
void paletteToText();
void setPalette(array<Uint8, 4> p);
void setClient(paletteDialogClient* c);
void refreshButtonColour();
void openColourDialog(Uint8 clientID);
};
#endif // __hdnesPackEditorpaletteDialog__

View file

@ -1916,3 +1916,73 @@ replacementDialog::~replacementDialog()
m_button9->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( replacementDialog::replacementConfirm ), NULL, this );
}
paletteDialog::paletteDialog( 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* bSizer7;
bSizer7 = new wxBoxSizer( wxVERTICAL );
wxBoxSizer* bSizer70;
bSizer70 = new wxBoxSizer( wxHORIZONTAL );
m_staticText10 = new wxStaticText( this, wxID_ANY, wxT("Choose a new palette: "), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText10->Wrap( -1 );
bSizer70->Add( m_staticText10, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
btnPaletteBGColour = new wxButton( this, wxID_ANY, wxT("BG"), wxDefaultPosition, wxSize( 50,-1 ), 0 );
bSizer70->Add( btnPaletteBGColour, 0, wxALIGN_CENTER_VERTICAL, 5 );
btnPaletteColour1 = new wxButton( this, wxID_ANY, wxT("1"), wxDefaultPosition, wxSize( 50,-1 ), 0 );
bSizer70->Add( btnPaletteColour1, 0, wxALIGN_CENTER_VERTICAL, 5 );
btnPaletteColour2 = new wxButton( this, wxID_ANY, wxT("2"), wxDefaultPosition, wxSize( 50,-1 ), 0 );
bSizer70->Add( btnPaletteColour2, 0, wxALIGN_CENTER_VERTICAL, 5 );
btnPaletteColour3 = new wxButton( this, wxID_ANY, wxT("3"), wxDefaultPosition, wxSize( 50,-1 ), 0 );
bSizer70->Add( btnPaletteColour3, 0, wxALIGN_CENTER_VERTICAL, 5 );
txtPaletteHex = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
#ifdef __WXGTK__
if ( !txtPaletteHex->HasFlag( wxTE_MULTILINE ) )
{
txtPaletteHex->SetMaxLength( 8 );
}
#else
txtPaletteHex->SetMaxLength( 8 );
#endif
bSizer70->Add( txtPaletteHex, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
btnPaletteOK = new wxButton( this, wxID_ANY, wxT("OK"), wxDefaultPosition, wxDefaultSize, 0 );
bSizer70->Add( btnPaletteOK, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
bSizer7->Add( bSizer70, 1, wxEXPAND, 5 );
this->SetSizer( bSizer7 );
this->Layout();
this->Centre( wxBOTH );
// Connect Events
btnPaletteBGColour->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( paletteDialog::paletteBGColour ), NULL, this );
btnPaletteColour1->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( paletteDialog::paletteColour1 ), NULL, this );
btnPaletteColour2->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( paletteDialog::paletteColour2 ), NULL, this );
btnPaletteColour3->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( paletteDialog::paletteColour3 ), NULL, this );
txtPaletteHex->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( paletteDialog::paletteHexChanged ), NULL, this );
btnPaletteOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( paletteDialog::paletteSelected ), NULL, this );
}
paletteDialog::~paletteDialog()
{
// Disconnect Events
btnPaletteBGColour->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( paletteDialog::paletteBGColour ), NULL, this );
btnPaletteColour1->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( paletteDialog::paletteColour1 ), NULL, this );
btnPaletteColour2->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( paletteDialog::paletteColour2 ), NULL, this );
btnPaletteColour3->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( paletteDialog::paletteColour3 ), NULL, this );
txtPaletteHex->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( paletteDialog::paletteHexChanged ), NULL, this );
btnPaletteOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( paletteDialog::paletteSelected ), NULL, this );
}

View file

@ -468,3 +468,35 @@ class replacementDialog : public wxDialog
};
///////////////////////////////////////////////////////////////////////////////
/// Class paletteDialog
///////////////////////////////////////////////////////////////////////////////
class paletteDialog : public wxDialog
{
private:
protected:
wxStaticText* m_staticText10;
wxButton* btnPaletteBGColour;
wxButton* btnPaletteColour1;
wxButton* btnPaletteColour2;
wxButton* btnPaletteColour3;
wxTextCtrl* txtPaletteHex;
wxButton* btnPaletteOK;
// Virtual event handlers, overide them in your derived class
virtual void paletteBGColour( wxCommandEvent& event ) { event.Skip(); }
virtual void paletteColour1( wxCommandEvent& event ) { event.Skip(); }
virtual void paletteColour2( wxCommandEvent& event ) { event.Skip(); }
virtual void paletteColour3( wxCommandEvent& event ) { event.Skip(); }
virtual void paletteHexChanged( wxCommandEvent& event ) { event.Skip(); }
virtual void paletteSelected( wxCommandEvent& event ) { event.Skip(); }
public:
paletteDialog( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 574,68 ), long style = wxDEFAULT_DIALOG_STYLE );
~paletteDialog();
};

View file

@ -0,0 +1,11 @@
#ifndef PALETTEDIALOGCLIENT_H_INCLUDED
#define PALETTEDIALOGCLIENT_H_INCLUDED
class paletteDialogClient
{
public:
virtual ~paletteDialogClient(){};
virtual void paletteSelected(Uint8* p) = 0;
};
#endif // PALETTEDIALOGCLIENT_H_INCLUDED