Richard Boegli's CnC_Generals_Zero_Hour Fork WIP
This is documentation of Richard Boegil's Zero Hour Fork
 
Loading...
Searching...
No Matches
mapobjectprops.h
Go to the documentation of this file.
1/*
2** Command & Conquer Generals Zero Hour(tm)
3** Copyright 2025 Electronic Arts Inc.
4**
5** This program is free software: you can redistribute it and/or modify
6** it under the terms of the GNU General Public License as published by
7** the Free Software Foundation, either version 3 of the License, or
8** (at your option) any later version.
9**
10** This program is distributed in the hope that it will be useful,
11** but WITHOUT ANY WARRANTY; without even the implied warranty of
12** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13** GNU General Public License for more details.
14**
15** You should have received a copy of the GNU General Public License
16** along with this program. If not, see <http://www.gnu.org/licenses/>.
17*/
18
19#if !defined(AFX_MAPOBJECTPROPS_H__44517B9E_12AB_4E2C_B49B_D6BB65C59649__INCLUDED_)
20#define AFX_MAPOBJECTPROPS_H__44517B9E_12AB_4E2C_B49B_D6BB65C59649__INCLUDED_
21
22#if _MSC_VER > 1000
23#pragma once
24#endif // _MSC_VER > 1000
25// mapobjectprops.h : header file
26//
27
28#include "OptionsPanel.h"
29#include "Common/Dict.h"
30#include "WBPopupSlider.h"
31
32class MapObject;
36class MapObject;
37
39// External Defines
40extern const char* NEUTRAL_TEAM_UI_STR;
41extern const char* NEUTRAL_TEAM_INTERNAL_STR;
42
43
45// MapObjectProps dialog
46
48{
49// Construction
50public:
51 MapObjectProps(Dict* dictToEdit = NULL, const char* title = NULL, CWnd* pParent = NULL); // standard constructor
53 void makeMain();
54
55// Dialog Data
56 //{{AFX_DATA(MapObjectProps)
58 //}}AFX_DATA
59
60
61// Overrides
62 // ClassWizard generated virtual function overrides
63 //{{AFX_VIRTUAL(MapObjectProps)
64 protected:
65 virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
66 //}}AFX_VIRTUAL
67
68// Implementation
69protected:
70 void getAllSelectedDicts(void);
71
73
74 // Data common to all property pages
76 std::vector<Dict*> m_allSelectedDicts;
77 const char* m_title;
79 MapObject *m_dictSource; // Source object for m_dictToEdit. m_selectedObject is not always the current source
80 // of m_dictToEdit, and I don't understand why, so I'm making another MapObject pointer
81 // which is always kept in sync.
82
86
90
91 Int m_defaultEntryIndex; //< Index in the sound combobox of the entry labelled "default"
92 Bool m_defaultIsNone; //< The default for this object is no sound
93 AsciiString m_defaultEntryName; //< The original name of the default entry
94
97
99 void updateTheUI(void);
100 void enableButtons();
101 int getSel();
102
103
104 // Generated message map functions
105 //{{AFX_MSG(MapObjectProps)
106 virtual BOOL OnInitDialog();
107 virtual void OnOK();
108 virtual void OnCancel();
109 afx_msg void OnSelchangeProperties();
110 afx_msg void OnEditprop();
111 afx_msg void OnNewprop();
112 afx_msg void OnRemoveprop();
113 afx_msg void OnDblclkProperties();
114
115 afx_msg void _TeamToDict(void);
116 afx_msg void _NameToDict(void);
117 afx_msg void _ScriptToDict(void);
118 afx_msg void _WeatherToDict(void);
119 afx_msg void _TimeToDict(void);
120 afx_msg void _ScaleToDict(void);
121 afx_msg void SetZOffset(void);
122 afx_msg void SetAngle(void);
123 afx_msg void SetPosition(void);
124 afx_msg void OnScaleOn();
125 afx_msg void OnScaleOff();
126 afx_msg void OnKillfocusMAPOBJECTXYPosition();
127 afx_msg void _PrebuiltUpgradesToDict(void);
128 afx_msg void _HealthToDict(void);
129 afx_msg void _EnabledToDict(void);
130 afx_msg void _IndestructibleToDict(void);
131 afx_msg void _UnsellableToDict(void);
132 afx_msg void _TargetableToDict();
133 afx_msg void _PoweredToDict(void);
134 afx_msg void _AggressivenessToDict(void);
135 afx_msg void _VisibilityToDict(void);
136 afx_msg void _VeterancyToDict(void);
137 afx_msg void _ShroudClearingDistanceToDict(void);
138 afx_msg void _RecruitableAIToDict(void);
139 afx_msg void _SelectableToDict(void);
140 afx_msg void _HPsToDict();
141 afx_msg void _StoppingDistanceToDict(void);
142 afx_msg void attachedSoundToDict(void);
143 afx_msg void customizeToDict(void);
144 afx_msg void enabledToDict(void);
145 afx_msg void loopingToDict(void);
146 afx_msg void loopCountToDict(void);
147 afx_msg void minVolumeToDict(void);
148 afx_msg void volumeToDict(void);
149 afx_msg void minRangeToDict(void);
150 afx_msg void maxRangeToDict(void);
151 afx_msg void priorityToDict(void);
152 //}}AFX_MSG
153
154 DECLARE_MESSAGE_MAP()
155
156 void _DictToName(void);
157 void _DictToTeam(void);
158 void _DictToScript(void);
159 void _DictToScale(void);
160 void _DictToWeather(void);
161 void _DictToTime(void);
162 void _DictToPrebuiltUpgrades(void);
163 void _DictToHealth(void);
164 void _DictToHPs(void);
165 void _DictToEnabled(void);
166 void _DictToDestructible(void);
167 void _DictToUnsellable(void);
168 void _DictToTargetable(void);
169
170 void _DictToPowered(void);
171 void _DictToAggressiveness(void);
172 void _DictToVisibilityRange(void);
173 void _DictToVeterancy(void);
176 void _DictToSelectable(void);
177 void _DictToStoppingDistance(void);
178 void ShowZOffset(MapObject* pMapObj);
179 void ShowAngle(MapObject* pMapObj);
180 void ShowPosition(MapObject* pMapObj);
181 void dictToAttachedSound(void);
182 void dictToCustomize(void);
183 void dictToEnabled(void);
184 void dictToLooping(void);
185 void dictToLoopCount(void);
186 void dictToMinVolume(void);
187 void dictToVolume(void);
188 void dictToMinRange(void);
189 void dictToMaxRange(void);
190 void dictToPriority(void);
191
192 void clearCustomizeFlag( CWorldBuilderDoc* pDoc, MultipleUndoable * ownerUndoable );
193
194 // Implementation of PopupSliderOwner callbacks
195 virtual void GetPopSliderInfo(const long sliderID, long *pMin, long *pMax, long *pLineSize, long *pInitial);
196 virtual void PopSliderChanged(const long sliderID, long theVal);
197 virtual void PopSliderFinished(const long sliderID, long theVal);
198
199public:
201 static void update(void);
202
203private:
205 MapObjectProps( const MapObjectProps & other ); // Deliberately undefined
206 MapObjectProps & operator=( const MapObjectProps & other ); // Deliberately undefined
207 void updateTheUI(MapObject *pMapObj);
208 void InitSound(void);
209};
210
211//{{AFX_INSERT_LOCATION}}
212// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
213
214#endif // !defined(AFX_MAPOBJECTPROPS_H__44517B9E_12AB_4E2C_B49B_D6BB65C59649__INCLUDED_)
#define NULL
Definition BaseType.h:92
bool Bool
Definition BaseType.h:132
float Real
Definition BaseType.h:124
#define IDD_MAPOBJECT_PROPS
Definition resource.h:74
#define BOOL
Definition Wnd_File.h:57
COptionsPanel(Int dlgid=0, CWnd *pParent=NULL)
Definition Dict.h:67
void _DictToPrebuiltUpgrades(void)
Move data from object to dialog controls.
MapObject * m_selectedObject
void ShowZOffset(MapObject *pMapObj)
Move data from object to dialog controls.
afx_msg void OnSelchangeProperties()
MapObject * m_dictSource
afx_msg void minRangeToDict(void)
Move data from dialog controls to object(s)
void dictToAttachedSound(void)
Move data from object to dialog controls.
WBPopupSliderButton m_scaleSlider
afx_msg void _AggressivenessToDict(void)
Move data from dialog controls to object.
void ShowPosition(MapObject *pMapObj)
Move data from object to dialog controls.
void dictToCustomize(void)
Move data from object to dialog controls.
afx_msg void _NameToDict(void)
Move data from dialog controls to object.
virtual void PopSliderFinished(const long sliderID, long theVal)
Slider control.
void dictToPriority(void)
Move data from object to dialog controls.
void _DictToHPs(void)
Move data from object to dialog controls.
void _DictToUnsellable(void)
Move data from object to dialog controls.
ModifyObjectUndoable * m_posUndoable
afx_msg void _RecruitableAIToDict(void)
Move data from dialog controls to object.
afx_msg void _EnabledToDict(void)
Move data from dialog controls to object.
void _DictToTeam(void)
Move data from object to dialog controls.
const char * m_title
virtual BOOL OnInitDialog()
Initialize dialog, especially drop down lists.
afx_msg void OnKillfocusMAPOBJECTXYPosition()
Move data from dialog controls to object.
WBPopupSliderButton m_angleSlider
afx_msg void _TeamToDict(void)
Move data from dialog controls to object.
afx_msg void _TimeToDict(void)
Move data from dialog controls to object.
void _DictToDestructible(void)
Move data from object to dialog controls.
afx_msg void OnRemoveprop()
std::vector< Dict * > m_allSelectedDicts
void deletePages()
afx_msg void _HPsToDict()
Move data from dialog controls to object.
afx_msg void _PoweredToDict(void)
Move data from dialog controls to object.
afx_msg void attachedSoundToDict(void)
Move data from dialog controls to object(s)
void _DictToEnabled(void)
Move data from object to dialog controls.
void _DictToPowered(void)
Move data from object to dialog controls.
void _DictToTime(void)
Move data from object to dialog controls.
void dictToMinVolume(void)
Move data from object to dialog controls.
afx_msg void _ScaleToDict(void)
Move data from dialog controls to object.
afx_msg void OnScaleOn()
Move data from dialog controls to object.
void _DictToTargetable(void)
Move data from object to dialog controls.
afx_msg void loopCountToDict(void)
Move data from dialog controls to object(s)
static MapObject * getSingleSelectedMapObject(void)
virtual void PopSliderChanged(const long sliderID, long theVal)
Slider control.
afx_msg void SetAngle(void)
Move data from dialog controls to object.
afx_msg void _SelectableToDict(void)
Move data from dialog controls to object.
afx_msg void _VisibilityToDict(void)
Move data from dialog controls to object.
afx_msg void maxRangeToDict(void)
Move data from dialog controls to object(s)
afx_msg void OnEditprop()
void _DictToStoppingDistance(void)
Move data from object to dialog controls.
void _DictToSelectable(void)
Move data from object to dialog controls.
afx_msg void _ShroudClearingDistanceToDict(void)
Move data from dialog controls to object.
void clearCustomizeFlag(CWorldBuilderDoc *pDoc, MultipleUndoable *ownerUndoable)
afx_msg void loopingToDict(void)
Move data from dialog controls to object(s)
afx_msg void _HealthToDict(void)
Move data from dialog controls to object.
void _DictToShroudClearingDistance(void)
Move data from object to dialog controls.
void _DictToVisibilityRange(void)
Move data from object to dialog controls.
afx_msg void _UnsellableToDict(void)
Move data from dialog controls to object.
afx_msg void _StoppingDistanceToDict(void)
Move data from dialog controls to object.
virtual void OnCancel()
void _DictToScale(void)
Move data from object to dialog controls.
virtual void DoDataExchange(CDataExchange *pDX)
afx_msg void _IndestructibleToDict(void)
Move data from dialog controls to object.
void getAllSelectedDicts(void)
afx_msg void priorityToDict(void)
Move data from dialog controls to object(s)
void dictToEnabled(void)
Move data from object to dialog controls.
void _DictToWeather(void)
Move data from object to dialog controls.
void _DictToHealth(void)
Move data from object to dialog controls.
virtual void OnOK()
WBPopupSliderButton m_heightSlider
MapObjectProps(Dict *dictToEdit=NULL, const char *title=NULL, CWnd *pParent=NULL)
void _DictToScript(void)
Move data from object to dialog controls.
afx_msg void SetZOffset(void)
Move data from dialog controls to object.
static MapObjectProps * TheMapObjectProps
void _DictToVeterancy(void)
Move data from object to dialog controls.
static void update(void)
void dictToLooping(void)
Move data from object to dialog controls.
afx_msg void _VeterancyToDict(void)
Move data from dialog controls to object.
afx_msg void _WeatherToDict(void)
Move data from dialog controls to object.
void dictToLoopCount(void)
Move data from object to dialog controls.
void _DictToAggressiveness(void)
Move data from object to dialog controls.
afx_msg void _PrebuiltUpgradesToDict(void)
Move data from dialog controls to object.
afx_msg void OnNewprop()
afx_msg void enabledToDict(void)
Move data from dialog controls to object(s)
afx_msg void volumeToDict(void)
Move data from dialog controls to object(s)
void _DictToName(void)
Move data from object to dialog controls.
void dictToVolume(void)
Move data from object to dialog controls.
afx_msg void customizeToDict(void)
Move data from dialog controls to object(s)
afx_msg void SetPosition(void)
Move data from dialog controls to object.
afx_msg void _TargetableToDict()
Move data from dialog controls to object.
afx_msg void minVolumeToDict(void)
Move data from dialog controls to object(s)
AsciiString m_defaultEntryName
afx_msg void OnDblclkProperties()
void _DictToRecruitableAI()
Move data from object to dialog controls.
void ShowAngle(MapObject *pMapObj)
Move data from object to dialog controls.
afx_msg void _ScriptToDict(void)
Move data from dialog controls to object.
afx_msg void OnScaleOff()
Move data from dialog controls to object.
virtual void GetPopSliderInfo(const long sliderID, long *pMin, long *pMax, long *pLineSize, long *pInitial)
Slider control.
void dictToMaxRange(void)
Move data from object to dialog controls.
void dictToMinRange(void)
Move data from object to dialog controls.
MultipleUndoable.
Definition CUndoable.h:398
const char * NEUTRAL_TEAM_INTERNAL_STR
const char * NEUTRAL_TEAM_UI_STR