GameDirectorSB 15-09-23 [v1.26] World Editor Sound Manager
@@ -96,6 +96,7 @@ | ||
96 | 96 | CLSB_Objects_Create = nullptr; |
97 | 97 | CLSB_Physics = nullptr; |
98 | 98 | CLSB_Environment = nullptr; |
99 | + CLSB_SoundMgr = nullptr; | |
99 | 100 | |
100 | 101 | AppBackground = NULL; |
101 | 102 | BlackBrush = NULL; |
@@ -297,7 +298,8 @@ | ||
297 | 298 | CLSB_Objects_Create = new SB_Objects_Create(); |
298 | 299 | CLSB_Physics = new SB_Physics(); |
299 | 300 | CLSB_Environment = new SB_Environment(); |
300 | - | |
301 | + CLSB_SoundMgr = new SB_SoundMgr(); | |
302 | + | |
301 | 303 | InitCommonControls(); |
302 | 304 | |
303 | 305 | hInst =NULL; |
@@ -98,6 +98,7 @@ | ||
98 | 98 | #include "SB_Objects_Create.h" |
99 | 99 | #include "SB_Physics.h" |
100 | 100 | #include "SB_Environment.h" |
101 | +#include "SB_SoundMgr.h" | |
101 | 102 | |
102 | 103 | class SB_App |
103 | 104 | { |
@@ -174,7 +175,9 @@ | ||
174 | 175 | SB_Objects_Create* CLSB_Objects_Create; |
175 | 176 | SB_Physics* CLSB_Physics; |
176 | 177 | SB_Environment* CLSB_Environment; |
178 | + SB_SoundMgr* CLSB_SoundMgr; | |
177 | 179 | |
180 | + | |
178 | 181 | bool InitApp(void); |
179 | 182 | void InitMFC(void); |
180 | 183 |
@@ -681,7 +681,7 @@ | ||
681 | 681 | SetDlgItemText(hDlg, IDC_EDCAMZ,buf); |
682 | 682 | |
683 | 683 | geVec3d_Subtract(&App->CL_Dialogs->CenterOfSelection, &App->CLSB_Doc->SelectedGeoCenter, &App->CL_Dialogs->CenterOfSelection); |
684 | - if (App->CL_Dialogs->m_pDoc->mModeTool == ID_TOOLS_TEMPLATE) | |
684 | + if (App->CLSB_Doc->mModeTool == ID_TOOLS_TEMPLATE) | |
685 | 685 | { |
686 | 686 | App->CL_Dialogs->m_pDoc->MoveTemplateBrush(&App->CL_Dialogs->CenterOfSelection); |
687 | 687 | } |
@@ -709,7 +709,7 @@ | ||
709 | 709 | App->CL_Dialogs->CenterOfSelection.Z = (float)atof(buff); |
710 | 710 | |
711 | 711 | geVec3d_Subtract(&App->CL_Dialogs->CenterOfSelection, &App->CLSB_Doc->SelectedGeoCenter, &App->CL_Dialogs->CenterOfSelection); |
712 | - if (App->CL_Dialogs->m_pDoc->mModeTool == ID_TOOLS_TEMPLATE) | |
712 | + if (App->CLSB_Doc->mModeTool == ID_TOOLS_TEMPLATE) | |
713 | 713 | { |
714 | 714 | App->CL_Dialogs->m_pDoc->MoveTemplateBrush(&App->CL_Dialogs->CenterOfSelection); |
715 | 715 | } |
@@ -194,7 +194,7 @@ | ||
194 | 194 | |
195 | 195 | Reset_View(1.0); |
196 | 196 | |
197 | - App->m_pDoc->IsNewDocument = 0; | |
197 | + App->CLSB_Doc->IsNewDocument = 0; | |
198 | 198 | App->m_pDoc->SetModifiedFlag(FALSE); |
199 | 199 | |
200 | 200 | App->CLSB_TopTabs->Update_Dlg_Controls(); |
@@ -316,7 +316,7 @@ | ||
316 | 316 | GroupListType *Groups; |
317 | 317 | |
318 | 318 | Groups = Level_GetGroups (App->CLSB_Doc->pLevel); |
319 | - App->m_pDoc->mCurrentGroup = Group_GetFirstId (Groups, &gi); | |
319 | + App->CLSB_Doc->mCurrentGroup = Group_GetFirstId (Groups, &gi); | |
320 | 320 | { |
321 | 321 | Brush *pBox = BrushTemplate_CreateBox (Level_GetBoxTemplate (App->CLSB_Doc->pLevel)); |
322 | 322 | if (pBox != NULL) |
@@ -915,7 +915,7 @@ | ||
915 | 915 | return;; |
916 | 916 | } |
917 | 917 | |
918 | - App->m_pDoc->IsNewDocument = 0; | |
918 | + App->CLSB_Doc->IsNewDocument = 0; | |
919 | 919 | App->m_pDoc->SetModifiedFlag(FALSE); |
920 | 920 | |
921 | 921 | App->Say("Saved", App->CL_World->mCurrent_3DT_PathAndFile); |
@@ -1153,7 +1153,7 @@ | ||
1153 | 1153 | |
1154 | 1154 | Reset_View(1.0); |
1155 | 1155 | |
1156 | - App->m_pDoc->IsNewDocument = 0; | |
1156 | + App->CLSB_Doc->IsNewDocument = 0; | |
1157 | 1157 | App->m_pDoc->SetModifiedFlag(FALSE); |
1158 | 1158 | |
1159 | 1159 | //App->CL_CreateBoxDialog->CreateDefault_TemplateCube(); |
@@ -1130,7 +1130,7 @@ | ||
1130 | 1130 | brushDrawData.FlagTest = ::fdocBrushNotDetail; |
1131 | 1131 | brushDrawData.GroupId = GroupId; |
1132 | 1132 | if( (GroupVis == Group_ShowAll) || |
1133 | - ((GroupVis == Group_ShowCurrent) && (GroupId == m_pDoc->mCurrentGroup)) || | |
1133 | + ((GroupVis == Group_ShowCurrent) && (GroupId == App->CLSB_Doc->mCurrentGroup)) || | |
1134 | 1134 | ((GroupVis == Group_ShowVisible) && (Group_IsVisible (Groups, GroupId))) |
1135 | 1135 | ) |
1136 | 1136 | { |
@@ -1140,7 +1140,7 @@ | ||
1140 | 1140 | |
1141 | 1141 | pDC->SelectObject (&PenThisGroup); |
1142 | 1142 | Level_EnumLeafBrushes (App->CLSB_Doc->pLevel, &brushDrawData, BrushDraw); // Draw Brushes |
1143 | - if( m_pDoc->mShowEntities == GE_TRUE ) | |
1143 | + if(App->CLSB_Doc->mShowEntities == GE_TRUE ) | |
1144 | 1144 | { |
1145 | 1145 | Level_EnumEntities (App->CLSB_Doc->pLevel, &brushDrawData, EntityDraw); |
1146 | 1146 | } |
@@ -1218,7 +1218,7 @@ | ||
1218 | 1218 | |
1219 | 1219 | if (pEnt->IsSelected ()) |
1220 | 1220 | { |
1221 | - fdocDrawEntity (pEnt, v, pDC, Level_GetEntityDefs (App->CLSB_Doc->pLevel), (i==m_pDoc->mCurrentEntity) ? GE_TRUE : GE_FALSE ) ; | |
1221 | + fdocDrawEntity (pEnt, v, pDC, Level_GetEntityDefs (App->CLSB_Doc->pLevel), (i==App->CLSB_Doc->mCurrentEntity) ? GE_TRUE : GE_FALSE ) ; | |
1222 | 1222 | } |
1223 | 1223 | } |
1224 | 1224 | } |
@@ -1237,8 +1237,8 @@ | ||
1237 | 1237 | // template brush/entity |
1238 | 1238 | pDC->SelectObject (&PenTemplate); |
1239 | 1239 | |
1240 | - if((m_pDoc->mModeTool==ID_TOOLS_TEMPLATE)|| | |
1241 | - (m_pDoc->mModeTool==ID_TOOLS_CAMERA && m_pDoc->GetSelState()==NOSELECTIONS)) | |
1240 | + if((App->CLSB_Doc->mModeTool==ID_TOOLS_TEMPLATE)|| | |
1241 | + (App->CLSB_Doc->mModeTool==ID_TOOLS_CAMERA && m_pDoc->GetSelState()==NOSELECTIONS)) | |
1242 | 1242 | { |
1243 | 1243 | if(!m_pDoc->TempEnt) |
1244 | 1244 | { |
@@ -160,7 +160,7 @@ | ||
160 | 160 | { |
161 | 161 | App->Get_Current_Document(); |
162 | 162 | |
163 | - if (App->m_pDoc->mModeTool == ID_TOOLS_TEMPLATE) | |
163 | + if (App->CLSB_Doc->mModeTool == ID_TOOLS_TEMPLATE) | |
164 | 164 | { |
165 | 165 | if (App->CL_Brush->Get_Brush_Count() == 0) |
166 | 166 | { |
@@ -400,7 +400,7 @@ | ||
400 | 400 | |
401 | 401 | SelectedItem = SelectedItem; |
402 | 402 | |
403 | - if (App->m_pDoc->mModeTool == ID_TOOLS_TEMPLATE) | |
403 | + if (App->CLSB_Doc->mModeTool == ID_TOOLS_TEMPLATE) | |
404 | 404 | { |
405 | 405 | return; |
406 | 406 | } |
@@ -1034,8 +1034,8 @@ | ||
1034 | 1034 | { |
1035 | 1035 | m_pDoc = (CFusionDoc*)App->m_pMainFrame->GetCurrentDoc(); |
1036 | 1036 | |
1037 | - m_pDoc->mCurrentTool = CURTOOL_NONE; | |
1038 | - m_pDoc->mModeTool = ID_GENERALSELECT; | |
1037 | + App->CLSB_Doc->mCurrentTool = CURTOOL_NONE; | |
1038 | + App->CLSB_Doc->mModeTool = ID_GENERALSELECT; | |
1039 | 1039 | m_pDoc->ConfigureCurrentTool(); |
1040 | 1040 | |
1041 | 1041 | } |
@@ -1084,23 +1084,23 @@ | ||
1084 | 1084 | App->Get_Current_Document(); |
1085 | 1085 | |
1086 | 1086 | |
1087 | - int mode = App->m_pDoc->mModeTool;// pView->GetModeTool(); | |
1087 | + int mode = App->CLSB_Doc->mModeTool;// pView->GetModeTool(); | |
1088 | 1088 | |
1089 | 1089 | if(mode == ID_TOOLS_TEMPLATE) |
1090 | 1090 | { |
1091 | - App->m_pDoc->mCurrentTool = ID_TOOLS_BRUSH_SCALEBRUSH; | |
1091 | + App->CLSB_Doc->mCurrentTool = ID_TOOLS_BRUSH_SCALEBRUSH; | |
1092 | 1092 | App->m_pDoc->ConfigureCurrentTool(); |
1093 | 1093 | } |
1094 | 1094 | else |
1095 | 1095 | { |
1096 | - if(App->m_pDoc->mCurrentTool == ID_TOOLS_BRUSH_SCALEBRUSH) | |
1096 | + if(App->CLSB_Doc->mCurrentTool == ID_TOOLS_BRUSH_SCALEBRUSH) | |
1097 | 1097 | { |
1098 | - App->m_pDoc->mCurrentTool = CURTOOL_NONE; | |
1098 | + App->CLSB_Doc->mCurrentTool = CURTOOL_NONE; | |
1099 | 1099 | App->m_pDoc->mAdjustMode = ADJUST_MODE_FACE; |
1100 | 1100 | } |
1101 | 1101 | else |
1102 | 1102 | { |
1103 | - App->m_pDoc->mCurrentTool = ID_TOOLS_BRUSH_SCALEBRUSH; | |
1103 | + App->CLSB_Doc->mCurrentTool = ID_TOOLS_BRUSH_SCALEBRUSH; | |
1104 | 1104 | } |
1105 | 1105 | |
1106 | 1106 | App->m_pDoc->ConfigureCurrentTool(); |
@@ -38,7 +38,7 @@ | ||
38 | 38 | HTREEITEM FileViewItem; |
39 | 39 | |
40 | 40 | //--------------- Sound |
41 | - //irrklang::ISound* SndFile; | |
41 | + irrklang::ISound* SndFile; | |
42 | 42 | Ogre::Real SndVolume; |
43 | 43 | char Sound_File[MAX_PATH]; |
44 | 44 | bool Play; |
@@ -23,6 +23,44 @@ | ||
23 | 23 | distribution. |
24 | 24 | */ |
25 | 25 | |
26 | +typedef struct Environ_type | |
27 | +{ | |
28 | + int Environment_ID; | |
29 | + char Environment_Name[MAX_PATH]; | |
30 | + | |
31 | + bool Environ_Enabled; | |
32 | + | |
33 | + //--------------- Sound | |
34 | + irrklang::ISound* SndFile; | |
35 | + Ogre::Real SndVolume; | |
36 | + char Sound_File[MAX_PATH]; | |
37 | + bool Play; | |
38 | + bool Loop; | |
39 | + | |
40 | + //--------------- Light | |
41 | + Ogre::Vector3 AmbientColour; | |
42 | + Ogre::Vector3 Light_Position; | |
43 | + | |
44 | + //--------------- Sky | |
45 | + bool Enabled; | |
46 | + int type; | |
47 | + char Material[MAX_PATH]; | |
48 | + float Curvature; | |
49 | + float Tiling; | |
50 | + float Distance; | |
51 | + | |
52 | + //--------------- Fog | |
53 | + int Fog_On; | |
54 | + int Fog_Mode; | |
55 | + Ogre::Vector3 Fog_Colour; | |
56 | + float Fog_Start; | |
57 | + float Fog_End; | |
58 | + float Fog_Density; | |
59 | + | |
60 | + bool IsMainEnvironment; | |
61 | + | |
62 | +}Environ_type; | |
63 | + | |
26 | 64 | class Base_Object |
27 | 65 | { |
28 | 66 | public: |
@@ -99,9 +137,11 @@ | ||
99 | 137 | Move_Type* S_MoveType[1]; |
100 | 138 | Teleport_type* S_Teleport[1]; |
101 | 139 | Collectable_type* S_Collectable[1]; |
102 | - Message_type* S_Message[1]; | |
140 | + Message_type* S_Message[1];*/ | |
141 | + | |
103 | 142 | Environ_type* S_Environ[1]; |
104 | - Particle_type* S_Particle[1]; | |
143 | + | |
144 | + /*Particle_type* S_Particle[1]; | |
105 | 145 | Light_type* S_Light[1];*/ |
106 | 146 | |
107 | 147 | bool Show_Message_Flag; |
@@ -122,7 +122,7 @@ | ||
122 | 122 | { |
123 | 123 | App->CLSB_Doc->ResetAllSelectedEntities(); |
124 | 124 | pDoc->SelectEntity (&(*mEntityArray)[mCurrentEntity]); |
125 | - pDoc->mCurrentEntity = mCurrentEntity; | |
125 | + App->CLSB_Doc->mCurrentEntity = mCurrentEntity; | |
126 | 126 | } |
127 | 127 | } |
128 | 128 | } |
@@ -386,6 +386,8 @@ | ||
386 | 386 | //return; |
387 | 387 | } |
388 | 388 | |
389 | + App->CLSB_SoundMgr->Play_StartUp_Sound(); | |
390 | + | |
389 | 391 | App->CLSB_Ogre->OgreIsRunning = 1; |
390 | 392 | |
391 | 393 | App->CLSB_Ogre->Ogre_Render_Loop(); |
@@ -282,16 +282,15 @@ | ||
282 | 282 | CFusionDoc::CFusionDoc() : CDocument (), |
283 | 283 | |
284 | 284 | SelectLock (FALSE), TempEnt (FALSE), SelState (NOSELECTIONS), |
285 | - mShowSelectedFaces (FALSE), mShowSelectedBrushes (FALSE), | |
285 | + mShowSelectedBrushes (FALSE), | |
286 | 286 | LeakPoints (NULL), NumLeakPoints (0), bLeakLoaded (FALSE), bShowLeak (TRUE), |
287 | - IsNewDocument (1), mShowEntities (GE_TRUE), mCurTextureSelection (1), | |
288 | 287 | bShowClipBrushes (GE_TRUE), bShowDetailBrushes (GE_TRUE), bShowHintBrushes (GE_TRUE), bShowActors(GE_TRUE)/*changed QD*/, |
289 | 288 | mpActiveViewFrame (NULL), // mpBrushAttributes (NULL), mpFaceAttributes (NULL), |
290 | - /*mpTextureView (NULL), */mWorldBsp (NULL), mActiveView (-1), mCurrentEntity (-1), | |
291 | - mModeTool (ID_TOOLS_TEMPLATE), mAdjustMode (ADJUST_MODE_FACE), | |
292 | - mCurrentTool (ID_TOOLS_BRUSH_MOVEROTATEBRUSH), mShowBrush (TRUE), mConstrainHollows (GE_TRUE), | |
293 | - mCurrentBitmap (0), NumSelEntities (0), //mTextureBrowserOpen (0), | |
294 | - mCurrentGroup (0), TempShearTemplate (NULL), PlaceObjectFlag (FALSE), | |
289 | + /*mpTextureView (NULL), */mWorldBsp (NULL), | |
290 | + mAdjustMode (ADJUST_MODE_FACE), | |
291 | + mConstrainHollows (GE_TRUE), | |
292 | + //mTextureBrowserOpen (0), | |
293 | + TempShearTemplate (NULL), PlaceObjectFlag (FALSE), | |
295 | 294 | pSelFaces (NULL), pSelBrushes (NULL)//, pCameraEntity (NULL) |
296 | 295 | { |
297 | 296 |
@@ -911,7 +910,7 @@ | ||
911 | 910 | GroupListType *Groups; |
912 | 911 | |
913 | 912 | Groups = Level_GetGroups (App->CLSB_Doc->pLevel); |
914 | - mCurrentGroup = Group_GetFirstId (Groups, &gi); | |
913 | + App->CLSB_Doc->mCurrentGroup = Group_GetFirstId (Groups, &gi); | |
915 | 914 | |
916 | 915 | { |
917 | 916 | Brush *pBox = BrushTemplate_CreateBox (Level_GetBoxTemplate (App->CLSB_Doc->pLevel)); |
@@ -960,7 +959,7 @@ | ||
960 | 959 | { |
961 | 960 | geBoolean Placed; |
962 | 961 | |
963 | - if(mModeTool!=ID_TOOLS_TEMPLATE) | |
962 | + if(App->CLSB_Doc->mModeTool!=ID_TOOLS_TEMPLATE) | |
964 | 963 | return; |
965 | 964 | |
966 | 965 | Placed = GE_FALSE; |
@@ -1033,7 +1032,7 @@ | ||
1033 | 1032 | pTemplatePos = Level_GetTemplatePos (App->CLSB_Doc->pLevel); |
1034 | 1033 | Brush_Center (nb, pTemplatePos); |
1035 | 1034 | // add to current group |
1036 | - Brush_SetGroupId (nb, mCurrentGroup); | |
1035 | + Brush_SetGroupId (nb, App->CLSB_Doc->mCurrentGroup); | |
1037 | 1036 | |
1038 | 1037 | { |
1039 | 1038 | // set draw scale and lightmap scale defaults for all faces |
@@ -1071,7 +1070,7 @@ | ||
1071 | 1070 | // MS: We need to simualate a "move", to finally place |
1072 | 1071 | // Lib objects to where they were placed in Template mode |
1073 | 1072 | // switch to move mode |
1074 | - mCurrentTool=ID_TOOLS_BRUSH_MOVEROTATEBRUSH; | |
1073 | + App->CLSB_Doc->mCurrentTool=ID_TOOLS_BRUSH_MOVEROTATEBRUSH; | |
1075 | 1074 | ConfigureCurrentTool(); |
1076 | 1075 | // fake a move |
1077 | 1076 | App->CLSB_Doc->DoneMove(); |
@@ -1089,7 +1088,7 @@ | ||
1089 | 1088 | Brush *nb; |
1090 | 1089 | BrushList *BList = Level_GetBrushes (App->CLSB_Doc->pLevel); |
1091 | 1090 | |
1092 | - if ((mModeTool==ID_GENERALSELECT) && (BrushList_Count (BList, BRUSH_COUNT_MULTI | BRUSH_COUNT_LEAF) < 2)) | |
1091 | + if ((App->CLSB_Doc->mModeTool==ID_GENERALSELECT) && (BrushList_Count (BList, BRUSH_COUNT_MULTI | BRUSH_COUNT_LEAF) < 2)) | |
1093 | 1092 | { |
1094 | 1093 | // cuts shouldn't start the list |
1095 | 1094 | return; |
@@ -1097,7 +1096,7 @@ | ||
1097 | 1096 | |
1098 | 1097 | SetModifiedFlag(); |
1099 | 1098 | |
1100 | - if(mModeTool==ID_GENERALSELECT) | |
1099 | + if(App->CLSB_Doc->mModeTool==ID_GENERALSELECT) | |
1101 | 1100 | { |
1102 | 1101 | // put the brush at the very end of the list |
1103 | 1102 | BrushList_Remove (BList, CurBrush); |
@@ -1114,7 +1113,7 @@ | ||
1114 | 1113 | Brush_Bound (nb); |
1115 | 1114 | |
1116 | 1115 | // add to current group |
1117 | - Brush_SetGroupId (nb, mCurrentGroup); | |
1116 | + Brush_SetGroupId (nb, App->CLSB_Doc->mCurrentGroup); | |
1118 | 1117 | |
1119 | 1118 | BrushList_Append (BList, nb); |
1120 | 1119 | } |
@@ -1307,7 +1306,7 @@ | ||
1307 | 1306 | return GE_TRUE; |
1308 | 1307 | |
1309 | 1308 | case Group_ShowCurrent : |
1310 | - return (GroupId == mCurrentGroup); | |
1309 | + return (GroupId == App->CLSB_Doc->mCurrentGroup); | |
1311 | 1310 | |
1312 | 1311 | case Group_ShowVisible : |
1313 | 1312 | return Group_IsVisible (Level_GetGroups (App->CLSB_Doc->pLevel), GroupId); |
@@ -1330,7 +1329,7 @@ | ||
1330 | 1329 | { |
1331 | 1330 | return pEntity->IsVisible (); |
1332 | 1331 | } |
1333 | - if ((mShowEntities == GE_FALSE) || !pEntity->IsVisible ()) | |
1332 | + if ((App->CLSB_Doc->mShowEntities == GE_FALSE) || !pEntity->IsVisible ()) | |
1334 | 1333 | { |
1335 | 1334 | return GE_FALSE ; |
1336 | 1335 | } |
@@ -1343,7 +1342,7 @@ | ||
1343 | 1342 | return GE_TRUE; |
1344 | 1343 | |
1345 | 1344 | case Group_ShowCurrent : |
1346 | - return (GroupId == mCurrentGroup); | |
1345 | + return (GroupId == App->CLSB_Doc->mCurrentGroup); | |
1347 | 1346 | |
1348 | 1347 | case Group_ShowVisible : |
1349 | 1348 | return Group_IsVisible (Level_GetGroups (App->CLSB_Doc->pLevel), GroupId); |
@@ -1656,7 +1655,7 @@ | ||
1656 | 1655 | CEntitiesDialog Dialog (AfxGetMainWnd ()); |
1657 | 1656 | CEntityArray *Entities = Level_GetEntities (App->CLSB_Doc->pLevel); |
1658 | 1657 | |
1659 | - Dialog.EditEntity( *Entities, mCurrentEntity, this); | |
1658 | + Dialog.EditEntity( *Entities, App->CLSB_Doc->mCurrentEntity, this); | |
1660 | 1659 | UpdateEntityOrigins(); |
1661 | 1660 | // changed QD Actors |
1662 | 1661 | UpdateEntityActors(); |
@@ -1706,12 +1705,12 @@ | ||
1706 | 1705 | TempEnt = TRUE; |
1707 | 1706 | |
1708 | 1707 | mRegularEntity = NewEnt; |
1709 | - mCurrentEntity = -1; | |
1708 | + App->CLSB_Doc->mCurrentEntity = -1; | |
1710 | 1709 | // set this flag so that doc knows when enter is pressed that user is NOT adding |
1711 | 1710 | // objects to level |
1712 | 1711 | PlaceObjectFlag = FALSE; |
1713 | 1712 | |
1714 | - mCurrentTool=ID_TOOLS_BRUSH_MOVEROTATEBRUSH; | |
1713 | + App->CLSB_Doc->mCurrentTool=ID_TOOLS_BRUSH_MOVEROTATEBRUSH; | |
1715 | 1714 | ConfigureCurrentTool(); |
1716 | 1715 | |
1717 | 1716 | App->CLSB_Doc->UpdateAllViews(UAV_ALL3DVIEWS, NULL); |
@@ -1733,13 +1732,13 @@ | ||
1733 | 1732 | NewEnt.SetOrigin (0.0f, 0.0f, 0.0f, Level_GetEntityDefs (App->CLSB_Doc->pLevel)); |
1734 | 1733 | |
1735 | 1734 | mRegularEntity=NewEnt; |
1736 | - mCurrentEntity=-1; | |
1735 | + App->CLSB_Doc->mCurrentEntity=-1; | |
1737 | 1736 | |
1738 | 1737 | // set this flag so that doc knows when enter is pressed that user is adding objects |
1739 | 1738 | // to level |
1740 | 1739 | PlaceObjectFlag = TRUE; |
1741 | 1740 | |
1742 | - mCurrentTool=ID_TOOLS_BRUSH_MOVEROTATEBRUSH; | |
1741 | + App->CLSB_Doc->mCurrentTool=ID_TOOLS_BRUSH_MOVEROTATEBRUSH; | |
1743 | 1742 | ConfigureCurrentTool(); |
1744 | 1743 | |
1745 | 1744 | App->CLSB_Doc->UpdateAllViews(UAV_ALL3DVIEWS, NULL); |
@@ -1749,13 +1748,13 @@ | ||
1749 | 1748 | |
1750 | 1749 | void CFusionDoc::OnEntitiesShow(void) |
1751 | 1750 | { |
1752 | - mShowEntities = !mShowEntities; | |
1751 | + App->CLSB_Doc->mShowEntities = !App->CLSB_Doc->mShowEntities; | |
1753 | 1752 | App->CLSB_Doc->UpdateAllViews(UAV_ALL3DVIEWS, NULL); |
1754 | 1753 | } |
1755 | 1754 | |
1756 | 1755 | void CFusionDoc::OnUpdateEntitiesShow(CCmdUI* pCmdUI) |
1757 | 1756 | { |
1758 | - pCmdUI->SetCheck( mShowEntities ); | |
1757 | + pCmdUI->SetCheck(App->CLSB_Doc->mShowEntities ); | |
1759 | 1758 | } |
1760 | 1759 | |
1761 | 1760 | void CFusionDoc::OnViewShowAllGroups() |
@@ -1898,7 +1897,7 @@ | ||
1898 | 1897 | { |
1899 | 1898 | assert (v != NULL); |
1900 | 1899 | |
1901 | - if(mCurrentEntity < 0) //template | |
1900 | + if(App->CLSB_Doc->mCurrentEntity < 0) //template | |
1902 | 1901 | { |
1903 | 1902 | mRegularEntity.Move (v); |
1904 | 1903 | } |
@@ -1906,7 +1905,7 @@ | ||
1906 | 1905 | { |
1907 | 1906 | CEntityArray *Entities = Level_GetEntities (App->CLSB_Doc->pLevel); |
1908 | 1907 | |
1909 | - (*Entities)[mCurrentEntity].Move(v); | |
1908 | + (*Entities)[App->CLSB_Doc->mCurrentEntity].Move(v); | |
1910 | 1909 | SetModifiedFlag(); |
1911 | 1910 | } |
1912 | 1911 | } |
@@ -1931,7 +1930,7 @@ | ||
1931 | 1930 | { |
1932 | 1931 | if( /*mModeTool == ID_GENERALSELECT && |
1933 | 1932 | !IsSelectionLocked() && */ |
1934 | - mCurrentTool == CURTOOL_NONE ) | |
1933 | + App->CLSB_Doc->mCurrentTool == CURTOOL_NONE ) | |
1935 | 1934 | { |
1936 | 1935 | // SetAdjustmentMode( ADJUST_MODE_BRUSH ) ; |
1937 | 1936 | SetAdjustmentMode( ADJUST_MODE_FACE ) ; |
@@ -1948,7 +1947,7 @@ | ||
1948 | 1947 | { |
1949 | 1948 | if( /*mModeTool == ID_GENERALSELECT && |
1950 | 1949 | !IsSelectionLocked() && */ |
1951 | - mCurrentTool == CURTOOL_NONE ) | |
1950 | + App->CLSB_Doc->mCurrentTool == CURTOOL_NONE ) | |
1952 | 1951 | { |
1953 | 1952 | SetAdjustmentMode( ADJUST_MODE_FACE ) ; |
1954 | 1953 | } |
@@ -1960,7 +1959,7 @@ | ||
1960 | 1959 | DoGeneralSelect(); |
1961 | 1960 | if( /*mModeTool == ID_GENERALSELECT && |
1962 | 1961 | !IsSelectionLocked() && */ |
1963 | - mCurrentTool == CURTOOL_NONE ) | |
1962 | + App->CLSB_Doc->mCurrentTool == CURTOOL_NONE ) | |
1964 | 1963 | { |
1965 | 1964 | SetAdjustmentMode( ADJUST_MODE_FACE ) ; |
1966 | 1965 | } |
@@ -1973,7 +1972,7 @@ | ||
1973 | 1972 | DoGeneralSelect(); |
1974 | 1973 | if( /*mModeTool == ID_GENERALSELECT && |
1975 | 1974 | !IsSelectionLocked() && */ |
1976 | - mCurrentTool == CURTOOL_NONE ) | |
1975 | + App->CLSB_Doc->mCurrentTool == CURTOOL_NONE ) | |
1977 | 1976 | { |
1978 | 1977 | SetAdjustmentMode( ADJUST_MODE_TOGGLE ) ; // Flip between Brush & face |
1979 | 1978 | } |
@@ -2261,7 +2260,7 @@ | ||
2261 | 2260 | if ((*Entities)[i].IsSelected()) |
2262 | 2261 | { |
2263 | 2262 | (*Entities)[i].DeSelect(); |
2264 | - --NumSelEntities; | |
2263 | + --App->CLSB_Doc->NumSelEntities; | |
2265 | 2264 | } |
2266 | 2265 | } |
2267 | 2266 | } |
@@ -2296,7 +2295,7 @@ | ||
2296 | 2295 | if (!(*Entities)[i].IsSelected()) |
2297 | 2296 | { |
2298 | 2297 | (*Entities)[i].Select(); |
2299 | - ++NumSelEntities; | |
2298 | + ++App->CLSB_Doc->NumSelEntities; | |
2300 | 2299 | } |
2301 | 2300 | } |
2302 | 2301 | } |
@@ -2323,7 +2322,7 @@ | ||
2323 | 2322 | SelBrushList_Add (pSelBrushes, pBrush); |
2324 | 2323 | } |
2325 | 2324 | // end change |
2326 | - ++NumSelEntities; | |
2325 | + ++App->CLSB_Doc->NumSelEntities; | |
2327 | 2326 | } |
2328 | 2327 | } |
2329 | 2328 |
@@ -2345,7 +2344,7 @@ | ||
2345 | 2344 | SelBrushList_Remove(pSelBrushes, pBrush); |
2346 | 2345 | } |
2347 | 2346 | // end change |
2348 | - --NumSelEntities; | |
2347 | + --App->CLSB_Doc->NumSelEntities; | |
2349 | 2348 | assert (NumSelEntities >= 0); |
2350 | 2349 | } |
2351 | 2350 | } |
@@ -2444,7 +2443,7 @@ | ||
2444 | 2443 | { |
2445 | 2444 | DoGeneralSelect (); |
2446 | 2445 | |
2447 | - NumSelEntities = 0; | |
2446 | + App->CLSB_Doc->NumSelEntities = 0; | |
2448 | 2447 | Level_EnumEntities (App->CLSB_Doc->pLevel, this, ::fdocSelectEntity); |
2449 | 2448 | |
2450 | 2449 | App->CLSB_Doc->UpdateSelected(); |
@@ -2502,7 +2501,7 @@ | ||
2502 | 2501 | |
2503 | 2502 | Entities = Level_GetEntities (App->CLSB_Doc->pLevel); |
2504 | 2503 | App->CLSB_Doc->ResetAllSelectedEntities(); |
2505 | - mCurrentEntity = ID; | |
2504 | + App->CLSB_Doc->mCurrentEntity = ID; | |
2506 | 2505 | SelectEntity (&(*Entities)[ID]); |
2507 | 2506 | App->CLSB_Doc->UpdateSelected() ; |
2508 | 2507 | } |
@@ -2517,7 +2516,7 @@ | ||
2517 | 2516 | |
2518 | 2517 | Entities = Level_GetEntities (App->CLSB_Doc->pLevel); |
2519 | 2518 | |
2520 | - pEnt = &(*Entities)[mCurrentEntity]; | |
2519 | + pEnt = &(*Entities)[App->CLSB_Doc->mCurrentEntity]; | |
2521 | 2520 | |
2522 | 2521 | |
2523 | 2522 | if (pEnt->IsCamera ()) |
@@ -2549,7 +2548,7 @@ | ||
2549 | 2548 | geFloat fArcDelta ; |
2550 | 2549 | CEntityArray *Entities = Level_GetEntities (App->CLSB_Doc->pLevel); |
2551 | 2550 | |
2552 | - pEnt = &(*Entities)[mCurrentEntity]; | |
2551 | + pEnt = &(*Entities)[App->CLSB_Doc->mCurrentEntity]; | |
2553 | 2552 | |
2554 | 2553 | pEnt->GetArc( &fArc, Level_GetEntityDefs (App->CLSB_Doc->pLevel) ) ; |
2555 | 2554 |
@@ -2573,7 +2572,7 @@ | ||
2573 | 2572 | geFloat fRadius ; |
2574 | 2573 | CEntityArray *Entities = Level_GetEntities (App->CLSB_Doc->pLevel); |
2575 | 2574 | |
2576 | - pEnt = &(*Entities)[mCurrentEntity]; | |
2575 | + pEnt = &(*Entities)[App->CLSB_Doc->mCurrentEntity]; | |
2577 | 2576 | |
2578 | 2577 | pEnt->GetRadius( &fRadius, Level_GetEntityDefs (App->CLSB_Doc->pLevel) ) ; |
2579 | 2578 | fRadius += geVec3d_Length (pVec); |
@@ -2657,9 +2656,9 @@ | ||
2657 | 2656 | { |
2658 | 2657 | App->CLSB_Doc->mLastOp =BRUSH_SCALE; |
2659 | 2658 | |
2660 | - if(mModeTool == ID_TOOLS_TEMPLATE) | |
2659 | + if(App->CLSB_Doc->mModeTool == ID_TOOLS_TEMPLATE) | |
2661 | 2660 | { |
2662 | - Brush_Resize(CurBrush, dx, dy, sides, inidx, &FinalScale, &ScaleNum); | |
2661 | + Brush_Resize(CurBrush, dx, dy, sides, inidx, &App->CLSB_Doc->FinalScale, &App->CLSB_Doc->ScaleNum); | |
2663 | 2662 | if(Brush_IsMulti(CurBrush)) |
2664 | 2663 | { |
2665 | 2664 | BrushList_ClearCSGAndHollows((BrushList *)App->CL_Brush->Brush_GetBrushList(CurBrush), Brush_GetModelId(CurBrush)); |
@@ -2679,7 +2678,7 @@ | ||
2679 | 2678 | |
2680 | 2679 | pBrush = SelBrushList_GetBrush (App->CLSB_Doc->pTempSelBrushes, i); |
2681 | 2680 | |
2682 | - Brush_Resize (pBrush, dx, dy, sides, inidx, &FinalScale, &ScaleNum); | |
2681 | + Brush_Resize (pBrush, dx, dy, sides, inidx, &App->CLSB_Doc->FinalScale, &App->CLSB_Doc->ScaleNum); | |
2683 | 2682 | if (Brush_IsMulti(pBrush)) |
2684 | 2683 | { |
2685 | 2684 | BrushList_ClearCSGAndHollows((BrushList *)App->CL_Brush->Brush_GetBrushList(pBrush), Brush_GetModelId(pBrush)); |
@@ -2700,7 +2699,7 @@ | ||
2700 | 2699 | geVec3d_Subtract(&VecOrigin, &App->CLSB_Doc->SelectedGeoCenter, &MoveTo); |
2701 | 2700 | geVec3d_Subtract(&App->CLSB_Doc->SelectedGeoCenter, &VecOrigin, &MoveBack); |
2702 | 2701 | |
2703 | - if(mModeTool == ID_TOOLS_TEMPLATE) | |
2702 | + if(App->CLSB_Doc->mModeTool == ID_TOOLS_TEMPLATE) | |
2704 | 2703 | { |
2705 | 2704 | Brush_Scale3d(CurBrush, ScaleVector); |
2706 | 2705 | if(Brush_IsMulti(CurBrush)) |
@@ -3286,8 +3285,8 @@ | ||
3286 | 3285 | } |
3287 | 3286 | else |
3288 | 3287 | { |
3289 | - if(!pView->IsPanning && mCurrentTool!=ID_TOOLS_BRUSH_SCALEBRUSH | |
3290 | - && mCurrentTool!=ID_TOOLS_BRUSH_SHEARBRUSH) | |
3288 | + if(!pView->IsPanning && App->CLSB_Doc->mCurrentTool!=ID_TOOLS_BRUSH_SCALEBRUSH | |
3289 | + && App->CLSB_Doc->mCurrentTool!=ID_TOOLS_BRUSH_SHEARBRUSH) | |
3291 | 3290 | { |
3292 | 3291 | |
3293 | 3292 | int FoundThingType; |
@@ -3295,11 +3294,11 @@ | ||
3295 | 3294 | CEntity *pMinEntity; |
3296 | 3295 | geFloat Dist; |
3297 | 3296 | FoundThingType = FindClosestThing (&ViewCursorPos, pView->VCam, &pMinBrush, &pMinEntity, &Dist); |
3298 | - if (mCurrentTool==ID_TOOLS_BRUSH_MOVEROTATEBRUSH) | |
3297 | + if (App->CLSB_Doc->mCurrentTool==ID_TOOLS_BRUSH_MOVEROTATEBRUSH) | |
3299 | 3298 | SetCursor(AfxGetApp()->LoadStandardCursor(IDC_SIZEALL)); |
3300 | 3299 | else |
3301 | 3300 | SetCursor(AfxGetApp()->LoadStandardCursor(IDC_ARROW)); |
3302 | - if ((FoundThingType == fctNOTHING) || (Dist > MAX_PIXEL_SELECT_DIST) || (mCurrentTool != CURTOOL_NONE)) | |
3301 | + if ((FoundThingType == fctNOTHING) || (Dist > MAX_PIXEL_SELECT_DIST) || (App->CLSB_Doc->mCurrentTool != CURTOOL_NONE)) | |
3303 | 3302 | { |
3304 | 3303 | } |
3305 | 3304 | else |
@@ -3404,7 +3403,7 @@ | ||
3404 | 3403 | |
3405 | 3404 | void CFusionDoc::OnFileSave() |
3406 | 3405 | { |
3407 | - if (IsNewDocument) | |
3406 | + if (App->CLSB_Doc->IsNewDocument) | |
3408 | 3407 | { |
3409 | 3408 | OnFileSaveAs (); |
3410 | 3409 | } |
@@ -3444,7 +3443,7 @@ | ||
3444 | 3443 | |
3445 | 3444 | UpdateGridInformation(); |
3446 | 3445 | |
3447 | - IsNewDocument = 0; | |
3446 | + App->CLSB_Doc->IsNewDocument = 0; | |
3448 | 3447 | SetModifiedFlag(FALSE); |
3449 | 3448 | |
3450 | 3449 | // CFusionView* pFusionView = GetCameraView(); |
@@ -3800,8 +3799,8 @@ | ||
3800 | 3799 | BrushList_EnumLeafBrushes(BList, &brushDrawData, ::BrushDrawWireSel3dCB); |
3801 | 3800 | } |
3802 | 3801 | |
3803 | - if((mModeTool==ID_TOOLS_TEMPLATE)|| | |
3804 | - (mModeTool==ID_TOOLS_CAMERA && GetSelState()==NOSELECTIONS)) | |
3802 | + if((App->CLSB_Doc->mModeTool==ID_TOOLS_TEMPLATE)|| | |
3803 | + (App->CLSB_Doc->mModeTool==ID_TOOLS_CAMERA && GetSelState()==NOSELECTIONS)) | |
3805 | 3804 | { |
3806 | 3805 | brushDrawData.Color = PEN_BLUE_COLOR; |
3807 | 3806 | if(!TempEnt) |
@@ -3863,7 +3862,7 @@ | ||
3863 | 3862 | |
3864 | 3863 | App->CLSB_Doc->mLastOp =BRUSH_ROTATE; |
3865 | 3864 | |
3866 | - geVec3d_Add(v, &FinalRot, &FinalRot); | |
3865 | + geVec3d_Add(v, &App->CLSB_Doc->FinalRot, &App->CLSB_Doc->FinalRot); | |
3867 | 3866 | geXForm3d_SetEulerAngles(&rm, v); |
3868 | 3867 | Brush_Rotate (CurBrush, &rm, &App->CLSB_Doc->SelectedGeoCenter); |
3869 | 3868 | } |
@@ -3921,7 +3920,7 @@ | ||
3921 | 3920 | GetRotationPoint (&RotationPoint); |
3922 | 3921 | |
3923 | 3922 | |
3924 | - geVec3d_Add(v, &FinalRot, &FinalRot); | |
3923 | + geVec3d_Add(v, &App->CLSB_Doc->FinalRot, &App->CLSB_Doc->FinalRot); | |
3925 | 3924 | geXForm3d_SetEulerAngles(&rm, v); |
3926 | 3925 | |
3927 | 3926 | for(i=0;i < NumBrushes;i++) |
@@ -3956,7 +3955,7 @@ | ||
3956 | 3955 | { |
3957 | 3956 | RotateSelectedBrushList (pSelBrushes, v); |
3958 | 3957 | UpdateSelectedModel (BRUSH_ROTATE, v); |
3959 | - geVec3d_Clear (&FinalRot); | |
3958 | + geVec3d_Clear (&App->CLSB_Doc->FinalRot); | |
3960 | 3959 | } |
3961 | 3960 | |
3962 | 3961 | static geBoolean fdocBrushTextureScaleCallback (Brush *pBrush, void *lParam) |
@@ -3989,7 +3988,7 @@ | ||
3989 | 3988 | geVec3d RotationPoint; |
3990 | 3989 | geVec3d TemplateReversalRot; |
3991 | 3990 | |
3992 | - TemplateReversalRot = FinalRot; | |
3991 | + TemplateReversalRot = App->CLSB_Doc->FinalRot; | |
3993 | 3992 | |
3994 | 3993 | App->CLSB_Doc->mLastOp =BRUSH_ROTATE; |
3995 | 3994 |
@@ -4001,17 +4000,17 @@ | ||
4001 | 4000 | if((SelState & NOENTITIES) && Level_UseGrid (App->CLSB_Doc->pLevel)) |
4002 | 4001 | { |
4003 | 4002 | RSnap =Units_DegreesToRadians ((float)Level_GetRotationSnap (App->CLSB_Doc->pLevel)); |
4004 | - FinalRot.X =((float)((int)(FinalRot.X / RSnap))) * RSnap; | |
4005 | - FinalRot.Y =((float)((int)(FinalRot.Y / RSnap))) * RSnap; | |
4006 | - FinalRot.Z =((float)((int)(FinalRot.Z / RSnap))) * RSnap; | |
4003 | + App->CLSB_Doc->FinalRot.X =((float)((int)(App->CLSB_Doc->FinalRot.X / RSnap))) * RSnap; | |
4004 | + App->CLSB_Doc->FinalRot.Y =((float)((int)(App->CLSB_Doc->FinalRot.Y / RSnap))) * RSnap; | |
4005 | + App->CLSB_Doc->FinalRot.Z =((float)((int)(App->CLSB_Doc->FinalRot.Z / RSnap))) * RSnap; | |
4007 | 4006 | } |
4008 | 4007 | |
4009 | - if(mModeTool == ID_TOOLS_TEMPLATE) | |
4010 | - geVec3d_Subtract(&FinalRot, &TemplateReversalRot, &FinalRot); | |
4008 | + if(App->CLSB_Doc->mModeTool == ID_TOOLS_TEMPLATE) | |
4009 | + geVec3d_Subtract(&App->CLSB_Doc->FinalRot, &TemplateReversalRot, &App->CLSB_Doc->FinalRot); | |
4011 | 4010 | |
4012 | - geXForm3d_SetEulerAngles(&rm, &FinalRot); | |
4011 | + geXForm3d_SetEulerAngles(&rm, &App->CLSB_Doc->FinalRot); | |
4013 | 4012 | |
4014 | - if(mModeTool == ID_TOOLS_TEMPLATE) | |
4013 | + if(App->CLSB_Doc->mModeTool == ID_TOOLS_TEMPLATE) | |
4015 | 4014 | { |
4016 | 4015 | if (TempEnt) |
4017 | 4016 | { |
@@ -4075,9 +4074,9 @@ | ||
4075 | 4074 | } |
4076 | 4075 | App->CLSB_Doc->UpdateSelected(); |
4077 | 4076 | |
4078 | - UpdateSelectedModel (BRUSH_ROTATE, &FinalRot); | |
4077 | + UpdateSelectedModel (BRUSH_ROTATE, &App->CLSB_Doc->FinalRot); | |
4079 | 4078 | |
4080 | - geVec3d_Clear (&FinalRot); | |
4079 | + geVec3d_Clear (&App->CLSB_Doc->FinalRot); | |
4081 | 4080 | |
4082 | 4081 | // Find the camera entity and update the rendered view's camera position |
4083 | 4082 | { |
@@ -4130,7 +4129,7 @@ | ||
4130 | 4129 | CEntityArray *Entities = Level_GetEntities (App->CLSB_Doc->pLevel); |
4131 | 4130 | CEntity *pEnt; |
4132 | 4131 | |
4133 | - if (mCurrentTool==ID_TOOLS_BRUSH_MOVEROTATEBRUSH) | |
4132 | + if (App->CLSB_Doc->mCurrentTool==ID_TOOLS_BRUSH_MOVEROTATEBRUSH) | |
4134 | 4133 | { |
4135 | 4134 | if ((GetSelState()==ONEENTITYONLY) && Level_UseGrid (App->CLSB_Doc->pLevel)) |
4136 | 4135 | { |
@@ -4162,13 +4161,13 @@ | ||
4162 | 4161 | } |
4163 | 4162 | else |
4164 | 4163 | { |
4165 | - if(mCurrentEntity < 0) //template | |
4164 | + if(App->CLSB_Doc->mCurrentEntity < 0) //template | |
4166 | 4165 | { |
4167 | 4166 | pEnt = &mRegularEntity; |
4168 | 4167 | } |
4169 | 4168 | else |
4170 | 4169 | { |
4171 | - pEnt = &(*Entities)[mCurrentEntity]; | |
4170 | + pEnt = &(*Entities)[App->CLSB_Doc->mCurrentEntity]; | |
4172 | 4171 | } |
4173 | 4172 | |
4174 | 4173 | SnapSize = 1.0f; |
@@ -4317,11 +4316,11 @@ | ||
4317 | 4316 | { |
4318 | 4317 | BOOL Redraw =FALSE; |
4319 | 4318 | |
4320 | - if(mModeTool==ID_TOOLS_CAMERA) | |
4319 | + if(App->CLSB_Doc->mModeTool==ID_TOOLS_CAMERA) | |
4321 | 4320 | { |
4322 | - mCurrentTool =CURTOOL_NONE; | |
4321 | + App->CLSB_Doc->mCurrentTool =CURTOOL_NONE; | |
4323 | 4322 | mShowSelectedBrushes=(mAdjustMode==ADJUST_MODE_BRUSH); |
4324 | - mShowSelectedFaces =(mAdjustMode==ADJUST_MODE_FACE); | |
4323 | + App->CLSB_Doc->mShowSelectedFaces =(mAdjustMode==ADJUST_MODE_FACE); | |
4325 | 4324 | App->CLSB_Doc->UpdateAllViews(UAV_ALL3DVIEWS, NULL); |
4326 | 4325 | return; |
4327 | 4326 | } |
@@ -4329,7 +4328,7 @@ | ||
4329 | 4328 | switch(mAdjustMode) |
4330 | 4329 | { |
4331 | 4330 | case ADJUST_MODE_BRUSH : |
4332 | - mShowSelectedFaces =FALSE; | |
4331 | + App->CLSB_Doc->mShowSelectedFaces =FALSE; | |
4333 | 4332 | mShowSelectedBrushes=TRUE; |
4334 | 4333 | |
4335 | 4334 | App->CLSB_Doc->UpdateSelected(); |
@@ -4337,7 +4336,7 @@ | ||
4337 | 4336 | break; |
4338 | 4337 | |
4339 | 4338 | case ADJUST_MODE_FACE : |
4340 | - mShowSelectedFaces =TRUE; | |
4339 | + App->CLSB_Doc->mShowSelectedFaces =TRUE; | |
4341 | 4340 | mShowSelectedBrushes=FALSE; |
4342 | 4341 | |
4343 | 4342 | App->CLSB_Doc->UpdateSelected(); |
@@ -4349,39 +4348,39 @@ | ||
4349 | 4348 | break; |
4350 | 4349 | } |
4351 | 4350 | |
4352 | - switch(mCurrentTool) | |
4351 | + switch(App->CLSB_Doc->mCurrentTool) | |
4353 | 4352 | { |
4354 | 4353 | case ID_TOOLS_BRUSH_MOVEROTATEBRUSH: |
4355 | - if(mModeTool!=ID_TOOLS_TEMPLATE) | |
4354 | + if(App->CLSB_Doc->mModeTool!=ID_TOOLS_TEMPLATE) | |
4356 | 4355 | { |
4357 | - mShowSelectedFaces =FALSE; | |
4356 | + App->CLSB_Doc->mShowSelectedFaces =FALSE; | |
4358 | 4357 | mShowSelectedBrushes=TRUE; |
4359 | 4358 | Redraw =TRUE; |
4360 | 4359 | } |
4361 | 4360 | else |
4362 | 4361 | { |
4363 | - mShowSelectedFaces =FALSE; | |
4362 | + App->CLSB_Doc->mShowSelectedFaces =FALSE; | |
4364 | 4363 | mShowSelectedBrushes=FALSE; |
4365 | 4364 | } |
4366 | 4365 | break; |
4367 | 4366 | |
4368 | 4367 | case ID_TOOLS_BRUSH_SCALEBRUSH: |
4369 | - if(mModeTool!=ID_TOOLS_TEMPLATE) | |
4368 | + if(App->CLSB_Doc->mModeTool!=ID_TOOLS_TEMPLATE) | |
4370 | 4369 | { |
4371 | 4370 | Redraw =TRUE; |
4372 | - mShowSelectedFaces =FALSE; | |
4371 | + App->CLSB_Doc->mShowSelectedFaces =FALSE; | |
4373 | 4372 | mShowSelectedBrushes=TRUE; |
4374 | 4373 | } |
4375 | 4374 | else |
4376 | 4375 | { |
4377 | - mShowSelectedFaces =FALSE; | |
4376 | + App->CLSB_Doc->mShowSelectedFaces =FALSE; | |
4378 | 4377 | mShowSelectedBrushes=FALSE; |
4379 | 4378 | } |
4380 | 4379 | break; |
4381 | 4380 | |
4382 | 4381 | } |
4383 | - if(mModeTool==ID_TOOLS_TEMPLATE && TempEnt) | |
4384 | - mCurrentEntity=-1; | |
4382 | + if(App->CLSB_Doc->mModeTool==ID_TOOLS_TEMPLATE && TempEnt) | |
4383 | + App->CLSB_Doc->mCurrentEntity=-1; | |
4385 | 4384 | |
4386 | 4385 | Redraw =TRUE; |
4387 | 4386 | if(Redraw) |
@@ -4439,8 +4438,8 @@ | ||
4439 | 4438 | |
4440 | 4439 | void CFusionDoc::DoGeneralSelect (void) |
4441 | 4440 | { |
4442 | - mCurrentTool =CURTOOL_NONE; | |
4443 | - mModeTool =ID_GENERALSELECT; | |
4441 | + App->CLSB_Doc->mCurrentTool =CURTOOL_NONE; | |
4442 | + App->CLSB_Doc->mModeTool =ID_GENERALSELECT; | |
4444 | 4443 | ConfigureCurrentTool(); |
4445 | 4444 | //mpMainFrame->m_wndTabControls->m_pBrushEntityDialog->Update(this); |
4446 | 4445 | } |
@@ -4447,7 +4446,7 @@ | ||
4447 | 4446 | |
4448 | 4447 | void CFusionDoc::OnUpdateGeneralselect(CCmdUI* pCmdUI) |
4449 | 4448 | { |
4450 | - pCmdUI->SetCheck ((mModeTool == ID_GENERALSELECT) ? 1 : 0); | |
4449 | + pCmdUI->SetCheck ((App->CLSB_Doc->mModeTool == ID_GENERALSELECT) ? 1 : 0); | |
4451 | 4450 | } |
4452 | 4451 | |
4453 | 4452 | static geBoolean fdocSelectBrushesFromFaces (Brush *pBrush, void *lParam) |
@@ -4775,11 +4774,11 @@ | ||
4775 | 4774 | { |
4776 | 4775 | App->CLSB_Doc->mLastOp =BRUSH_SHEAR; |
4777 | 4776 | |
4778 | - if(mModeTool == ID_TOOLS_TEMPLATE) | |
4777 | + if(App->CLSB_Doc->mModeTool == ID_TOOLS_TEMPLATE) | |
4779 | 4778 | { |
4780 | 4779 | Brush_Destroy(&CurBrush); |
4781 | 4780 | CurBrush =BTemplate =Brush_Clone(TempShearTemplate); |
4782 | - Brush_ShearFixed(CurBrush, dx, dy, sides, inidx, &FinalScale, &ScaleNum); | |
4781 | + Brush_ShearFixed(CurBrush, dx, dy, sides, inidx, &App->CLSB_Doc->FinalScale, &App->CLSB_Doc->ScaleNum); | |
4783 | 4782 | } |
4784 | 4783 | else |
4785 | 4784 | { |
@@ -4794,7 +4793,7 @@ | ||
4794 | 4793 | Brush *pBrush; |
4795 | 4794 | |
4796 | 4795 | pBrush = SelBrushList_GetBrush (App->CLSB_Doc->pTempSelBrushes, i); |
4797 | - Brush_ShearFixed(pBrush, dx, dy, sides, inidx, &FinalScale, &ScaleNum); | |
4796 | + Brush_ShearFixed(pBrush, dx, dy, sides, inidx, &App->CLSB_Doc->FinalScale, &App->CLSB_Doc->ScaleNum); | |
4798 | 4797 | } |
4799 | 4798 | } |
4800 | 4799 |
@@ -4818,13 +4817,13 @@ | ||
4818 | 4817 | bsnap = Level_GetGridSnapSize (App->CLSB_Doc->pLevel); |
4819 | 4818 | } |
4820 | 4819 | |
4821 | - if(mModeTool==ID_TOOLS_TEMPLATE) | |
4820 | + if(App->CLSB_Doc->mModeTool==ID_TOOLS_TEMPLATE) | |
4822 | 4821 | { |
4823 | 4822 | if(TempShearTemplate) //can get here without shearing |
4824 | 4823 | { //by rapid clicking |
4825 | 4824 | Brush_Destroy(&CurBrush); |
4826 | 4825 | CurBrush =BTemplate =Brush_Clone(TempShearTemplate); |
4827 | - Brush_ShearFinal(CurBrush, sides, inidx, &FinalScale); | |
4826 | + Brush_ShearFinal(CurBrush, sides, inidx, &App->CLSB_Doc->FinalScale); | |
4828 | 4827 | |
4829 | 4828 | //check which side of the bounds changed |
4830 | 4829 | bx1 =Brush_GetBoundingBox(CurBrush); |
@@ -4862,7 +4861,7 @@ | ||
4862 | 4861 | continue; |
4863 | 4862 | // end change |
4864 | 4863 | |
4865 | - Brush_ShearFinal(pBrush, sides, inidx, &FinalScale); | |
4864 | + Brush_ShearFinal(pBrush, sides, inidx, &App->CLSB_Doc->FinalScale); | |
4866 | 4865 | |
4867 | 4866 | //check which side of the bounds changed |
4868 | 4867 | bx1 =Brush_GetBoundingBox(pBrush); |
@@ -5311,7 +5310,7 @@ | ||
5311 | 5310 | if( NewGroupId != 0 ) // You can't add the default group |
5312 | 5311 | { |
5313 | 5312 | Group_SetName( Groups, NewGroupId, szName ) ; |
5314 | - mCurrentGroup = NewGroupId; | |
5313 | + App->CLSB_Doc->mCurrentGroup = NewGroupId; | |
5315 | 5314 | AddSelToGroup() ; |
5316 | 5315 | }//Good new Group ID |
5317 | 5316 | else |
@@ -5331,7 +5330,7 @@ | ||
5331 | 5330 | ) |
5332 | 5331 | {// Fill brush group combo box with group names and IDs |
5333 | 5332 | int CurSel = LB_ERR; |
5334 | - GroupList_FillCombobox( Level_GetGroups (App->CLSB_Doc->pLevel), &cb, mCurrentGroup ) ; | |
5333 | + GroupList_FillCombobox( Level_GetGroups (App->CLSB_Doc->pLevel), &cb, App->CLSB_Doc->mCurrentGroup ) ; | |
5335 | 5334 | return CurSel; |
5336 | 5335 | } |
5337 | 5336 |
@@ -5363,7 +5362,7 @@ | ||
5363 | 5362 | int NumSelBrushes = SelBrushList_GetSize (pSelBrushes); |
5364 | 5363 | |
5365 | 5364 | entData.Groups = Level_GetGroups (App->CLSB_Doc->pLevel); |
5366 | - entData.CurrentGroup = mCurrentGroup; | |
5365 | + entData.CurrentGroup = App->CLSB_Doc->mCurrentGroup; | |
5367 | 5366 | |
5368 | 5367 | // tag all selected brushes with this group id... |
5369 | 5368 | for (int i = 0; i < NumSelBrushes; i++) |
@@ -5375,7 +5374,7 @@ | ||
5375 | 5374 | if(strstr(App->CL_Brush->Brush_GetName(pBrush),".act")!=NULL) |
5376 | 5375 | continue; |
5377 | 5376 | // end change |
5378 | - Group_AddBrush (entData.Groups, mCurrentGroup, pBrush); | |
5377 | + Group_AddBrush (entData.Groups, App->CLSB_Doc->mCurrentGroup, pBrush); | |
5379 | 5378 | } |
5380 | 5379 | // tag all selected entities with this group id... |
5381 | 5380 | Level_EnumEntities (App->CLSB_Doc->pLevel, &entData, ::fdocAddEntityToGroupCallback); |
@@ -5408,7 +5407,7 @@ | ||
5408 | 5407 | int NumSelBrushes = SelBrushList_GetSize (pSelBrushes); |
5409 | 5408 | |
5410 | 5409 | entData.Groups = Level_GetGroups (App->CLSB_Doc->pLevel); |
5411 | - entData.CurrentGroup = mCurrentGroup; | |
5410 | + entData.CurrentGroup = App->CLSB_Doc->mCurrentGroup; | |
5412 | 5411 | |
5413 | 5412 | for(int i = 0; i < NumSelBrushes; i++) |
5414 | 5413 | { |
@@ -5415,9 +5414,9 @@ | ||
5415 | 5414 | Brush *pBrush; |
5416 | 5415 | |
5417 | 5416 | pBrush = SelBrushList_GetBrush (pSelBrushes, i); |
5418 | - if( Brush_GetGroupId(pBrush) == mCurrentGroup ) | |
5417 | + if( Brush_GetGroupId(pBrush) == App->CLSB_Doc->mCurrentGroup ) | |
5419 | 5418 | { |
5420 | - Group_RemoveBrush( entData.Groups, mCurrentGroup, pBrush ); | |
5419 | + Group_RemoveBrush( entData.Groups, App->CLSB_Doc->mCurrentGroup, pBrush ); | |
5421 | 5420 | } |
5422 | 5421 | } |
5423 | 5422 |
@@ -5444,8 +5443,8 @@ | ||
5444 | 5443 | |
5445 | 5444 | BOOL CFusionDoc::OneBrushSelectedOnly(void) |
5446 | 5445 | { |
5447 | - return ((mModeTool==ID_TOOLS_TEMPLATE) || | |
5448 | - ((SelBrushList_GetSize (pSelBrushes)==1) && (NumSelEntities == 0) && | |
5446 | + return ((App->CLSB_Doc->mModeTool==ID_TOOLS_TEMPLATE) || | |
5447 | + ((SelBrushList_GetSize (pSelBrushes)==1) && (App->CLSB_Doc->NumSelEntities == 0) && | |
5449 | 5448 | (SelFaceList_GetSize (pSelFaces) == 0))); |
5450 | 5449 | } |
5451 | 5450 |
@@ -5453,10 +5452,10 @@ | ||
5453 | 5452 | { |
5454 | 5453 | BOOL EnableFlag; |
5455 | 5454 | |
5456 | - EnableFlag = ((mModeTool==ID_GENERALSELECT) && | |
5455 | + EnableFlag = ((App->CLSB_Doc->mModeTool==ID_GENERALSELECT) && | |
5457 | 5456 | (SelBrushList_GetSize (pSelBrushes)==1) && |
5458 | 5457 | (SelFaceList_GetSize (pSelFaces) == 0) && |
5459 | - (NumSelEntities == 0)); | |
5458 | + (App->CLSB_Doc->NumSelEntities == 0)); | |
5460 | 5459 | pCmdUI->Enable (EnableFlag); |
5461 | 5460 | } |
5462 | 5461 |
@@ -5742,9 +5741,9 @@ | ||
5742 | 5741 | bsnap = Level_GetGridSnapSize (App->CLSB_Doc->pLevel); |
5743 | 5742 | } |
5744 | 5743 | |
5745 | - if(mModeTool == ID_TOOLS_TEMPLATE) | |
5744 | + if(App->CLSB_Doc->mModeTool == ID_TOOLS_TEMPLATE) | |
5746 | 5745 | { |
5747 | - Brush_SnapScaleNearest(CurBrush, bsnap, sides, inidx, &FinalScale, &ScaleNum); | |
5746 | + Brush_SnapScaleNearest(CurBrush, bsnap, sides, inidx, &App->CLSB_Doc->FinalScale, &App->CLSB_Doc->ScaleNum); | |
5748 | 5747 | } |
5749 | 5748 | else |
5750 | 5749 | { |
@@ -5754,7 +5753,7 @@ | ||
5754 | 5753 | for (i = 0; i < NumBrushes; ++i) |
5755 | 5754 | { |
5756 | 5755 | Brush *pBrush = SelBrushList_GetBrush (App->CLSB_Doc->pTempSelBrushes, i); |
5757 | - Brush_SnapScaleNearest(pBrush, bsnap, sides, inidx, &FinalScale, &ScaleNum); | |
5756 | + Brush_SnapScaleNearest(pBrush, bsnap, sides, inidx, &App->CLSB_Doc->FinalScale, &App->CLSB_Doc->ScaleNum); | |
5758 | 5757 | } |
5759 | 5758 | } |
5760 | 5759 | } |
@@ -6735,7 +6734,7 @@ | ||
6735 | 6734 | } |
6736 | 6735 | |
6737 | 6736 | // update textures tab |
6738 | - mCurTextureSelection = 0; | |
6737 | + App->CLSB_Doc->mCurTextureSelection = 0; | |
6739 | 6738 | App->CL_TextureDialog->Fill_ListBox(); |
6740 | 6739 | |
6741 | 6740 | // update all brush faces |
@@ -7873,11 +7872,11 @@ | ||
7873 | 7872 | if(p->IsSelected()) |
7874 | 7873 | break; |
7875 | 7874 | } |
7876 | - mCurrentEntity = i; | |
7877 | - if(mCurrentEntity > Entities->GetSize()-1 ) | |
7875 | + App->CLSB_Doc->mCurrentEntity = i; | |
7876 | + if(App->CLSB_Doc->mCurrentEntity > Entities->GetSize()-1 ) | |
7878 | 7877 | return NULL; |
7879 | 7878 | |
7880 | - pEnt = &(*Entities)[mCurrentEntity]; | |
7879 | + pEnt = &(*Entities)[App->CLSB_Doc->mCurrentEntity]; | |
7881 | 7880 | |
7882 | 7881 | return pEnt; |
7883 | 7882 | } |
@@ -7989,12 +7988,12 @@ | ||
7989 | 7988 | { |
7990 | 7989 | int NumSelBrushes = SelBrushList_GetSize( pSelBrushes ); |
7991 | 7990 | |
7992 | - if ((!NumSelBrushes) && (!NumSelEntities)) | |
7991 | + if ((!NumSelBrushes) && (!App->CLSB_Doc->NumSelEntities)) | |
7993 | 7992 | return; |
7994 | 7993 | |
7995 | 7994 | geVec3d EntitySelectionCenter = {0.0f,0.0f,0.0f}; |
7996 | 7995 | |
7997 | - if (NumSelEntities) | |
7996 | + if (App->CLSB_Doc->NumSelEntities) | |
7998 | 7997 | { |
7999 | 7998 | CEntityArray *Entities; |
8000 | 7999 | Entities = Level_GetEntities (App->CLSB_Doc->pLevel); |
@@ -8018,7 +8017,7 @@ | ||
8018 | 8017 | |
8019 | 8018 | geVec3d_Add(&EntitySelectionCenter, &BrushSelectionCenter, &CurrentThingPos); |
8020 | 8019 | |
8021 | - geVec3d_Scale(&CurrentThingPos, 1/(float)((NumSelEntities)+NumSelBrushes), &CurrentThingPos); | |
8020 | + geVec3d_Scale(&CurrentThingPos, 1/(float)((App->CLSB_Doc->NumSelEntities)+NumSelBrushes), &CurrentThingPos); | |
8022 | 8021 | } |
8023 | 8022 | |
8024 | 8023 | if (geVec3d_DistanceBetween(&CurrentThingPos, &(pCameraEntity->mOrigin)) > 0) |
@@ -8078,9 +8077,9 @@ | ||
8078 | 8077 | UpdateBrushAttributesDlg(); |
8079 | 8078 | UpdateFaceAttributesDlg(); |
8080 | 8079 | |
8081 | - mModeTool = ID_TOOLS_TEMPLATE; | |
8080 | + App->CLSB_Doc->mModeTool = ID_TOOLS_TEMPLATE; | |
8082 | 8081 | |
8083 | - mCurrentTool = ID_TOOLS_BRUSH_MOVEROTATEBRUSH; | |
8082 | + App->CLSB_Doc->mCurrentTool = ID_TOOLS_BRUSH_MOVEROTATEBRUSH; | |
8084 | 8083 | |
8085 | 8084 | SetAdjustmentMode( ADJUST_MODE_FACE ) ; |
8086 | 8085 | //ConfigureCurrentTool(); |
@@ -8140,7 +8139,7 @@ | ||
8140 | 8139 | |
8141 | 8140 | void CFusionDoc::OnUpdateModifyMove(CCmdUI* pCmdUI) |
8142 | 8141 | { |
8143 | - if ((GetSelState()!=NOSELECTIONS) || ((mModeTool==ID_TOOLS_TEMPLATE) && !PlaceObjectFlag)) | |
8142 | + if ((GetSelState()!=NOSELECTIONS) || ((App->CLSB_Doc->mModeTool==ID_TOOLS_TEMPLATE) && !PlaceObjectFlag)) | |
8144 | 8143 | pCmdUI->Enable( TRUE ); |
8145 | 8144 | else |
8146 | 8145 | pCmdUI->Enable( FALSE ); |
@@ -8168,7 +8167,7 @@ | ||
8168 | 8167 | |
8169 | 8168 | void CFusionDoc::OnUpdateModifyScale(CCmdUI* pCmdUI) |
8170 | 8169 | { |
8171 | - if ((GetSelState()!=NOSELECTIONS) || ((mModeTool==ID_TOOLS_TEMPLATE) && !PlaceObjectFlag)) | |
8170 | + if ((GetSelState()!=NOSELECTIONS) || ((App->CLSB_Doc->mModeTool==ID_TOOLS_TEMPLATE) && !PlaceObjectFlag)) | |
8172 | 8171 | pCmdUI->Enable( TRUE ); |
8173 | 8172 | else |
8174 | 8173 | pCmdUI->Enable( FALSE ); |
@@ -111,15 +111,7 @@ | ||
111 | 111 | DECLARE_SERIAL(CFusionDoc); |
112 | 112 | |
113 | 113 | public: |
114 | - //Level *pLevel; | |
115 | - | |
116 | - //states and stats | |
117 | - int NumSelEntities; | |
118 | - | |
119 | - int mShowSelectedFaces; | |
120 | - int mCurrentTool, mCurrentBitmap, mShowBrush, mModeTool; | |
121 | - int mShowEntities, mCurrentGroup, mCurTextureSelection; | |
122 | - int IsNewDocument, mActiveView; | |
114 | + | |
123 | 115 | fdocAdjustEnum mAdjustMode; |
124 | 116 | int mShowSelectedBrushes; |
125 | 117 | int mLockAxis; |
@@ -137,9 +129,7 @@ | ||
137 | 129 | |
138 | 130 | GNode *mWorldBsp; |
139 | 131 | CEntity mRegularEntity; |
140 | - int mCurrentEntity, ScaleNum; | |
141 | - geVec3d FinalRot, FinalScale; | |
142 | - | |
132 | + | |
143 | 133 | //dialogs / controls |
144 | 134 | CFrameWnd *mpActiveViewFrame; |
145 | 135 | CMainFrame *mpMainFrame; |
@@ -158,7 +158,7 @@ | ||
158 | 158 | return; |
159 | 159 | } |
160 | 160 | |
161 | - if ((pDoc->GetSelState()!=NOSELECTIONS) || (pDoc->mModeTool==ID_TOOLS_TEMPLATE)) | |
161 | + if ((pDoc->GetSelState()!=NOSELECTIONS) || (App->CLSB_Doc->mModeTool==ID_TOOLS_TEMPLATE)) | |
162 | 162 | pCmdUI->Enable( TRUE ); |
163 | 163 | else |
164 | 164 | pCmdUI->Enable( FALSE ); |
@@ -205,7 +205,7 @@ | ||
205 | 205 | } |
206 | 206 | |
207 | 207 | // We've computed the delta, so move the thing... |
208 | - if (pDoc->mModeTool == ID_TOOLS_TEMPLATE) | |
208 | + if (App->CLSB_Doc->mModeTool == ID_TOOLS_TEMPLATE) | |
209 | 209 | pDoc->MoveTemplateBrush (&MoveDelta); |
210 | 210 | else |
211 | 211 | App->CLSB_Doc->MoveSelectedBrushList(pDoc->pSelBrushes, &MoveDelta); |
@@ -675,7 +675,7 @@ | ||
675 | 675 | |
676 | 676 | if(this==GetParentFrame()->GetActiveView()) |
677 | 677 | { |
678 | - pDoc->mActiveView =mViewType; | |
678 | + App->CLSB_Doc->mActiveView =mViewType; | |
679 | 679 | } |
680 | 680 | |
681 | 681 | dx = (RealCursorPosition.x - mStartPoint.x); |
@@ -1299,16 +1299,16 @@ | ||
1299 | 1299 | |
1300 | 1300 | if(Tool == ID_TOOLS_BRUSH_SCALEBRUSH) |
1301 | 1301 | { |
1302 | - pDoc->ScaleNum =0; | |
1302 | + App->CLSB_Doc->ScaleNum =0; | |
1303 | 1303 | |
1304 | - geVec3d_Set (&pDoc->FinalScale, 1.0f, 1.0f, 1.0f); | |
1304 | + geVec3d_Set (&App->CLSB_Doc->FinalScale, 1.0f, 1.0f, 1.0f); | |
1305 | 1305 | pDoc->TempCopySelectedBrushes(); |
1306 | 1306 | } |
1307 | 1307 | else if(Tool == ID_TOOLS_BRUSH_SHEARBRUSH) |
1308 | 1308 | { |
1309 | - pDoc->ScaleNum =0; | |
1309 | + App->CLSB_Doc->ScaleNum =0; | |
1310 | 1310 | |
1311 | - geVec3d_Clear (&pDoc->FinalScale); | |
1311 | + geVec3d_Clear (&App->CLSB_Doc->FinalScale); | |
1312 | 1312 | if (ModeTool == ID_TOOLS_TEMPLATE) |
1313 | 1313 | { |
1314 | 1314 | pDoc->TempShearTemplate =Brush_Clone(pDoc->CurBrush); |
@@ -1375,7 +1375,7 @@ | ||
1375 | 1375 | |
1376 | 1376 | if ((Tool == ID_TOOLS_BRUSH_MOVEROTATEBRUSH) || (Tool == ID_TOOLS_BRUSH_MOVESELECTEDBRUSHES)) |
1377 | 1377 | { |
1378 | - geVec3d_Set (&(pDoc->FinalRot), 0.0f, 0.0f, 0.0f); | |
1378 | + geVec3d_Set (&(App->CLSB_Doc->FinalRot), 0.0f, 0.0f, 0.0f); | |
1379 | 1379 | pDoc->TempCopySelectedBrushes(); |
1380 | 1380 | pDoc->SetModifiedFlag(); |
1381 | 1381 | } |
@@ -1832,11 +1832,8 @@ | ||
1832 | 1832 | |
1833 | 1833 | void CFusionView::OnToolsBrushShowbrush() |
1834 | 1834 | { |
1835 | - | |
1836 | - CFusionDoc* pDoc = GetDocument(); | |
1837 | - | |
1838 | 1835 | // toggle brush |
1839 | - pDoc->mShowBrush ^= 1; | |
1836 | + App->CLSB_Doc->mShowBrush ^= 1; | |
1840 | 1837 | |
1841 | 1838 | // redraw the screen |
1842 | 1839 | App->CLSB_Doc->UpdateAllViews(UAV_ALL3DVIEWS, NULL); |
@@ -1844,9 +1841,7 @@ | ||
1844 | 1841 | |
1845 | 1842 | void CFusionView::OnUpdateToolsBrushShowbrush(CCmdUI* pCmdUI) |
1846 | 1843 | { |
1847 | - CFusionDoc* pDoc = GetDocument(); | |
1848 | - | |
1849 | - pCmdUI->SetCheck (pDoc->mShowBrush); | |
1844 | + pCmdUI->SetCheck (App->CLSB_Doc->mShowBrush); | |
1850 | 1845 | } |
1851 | 1846 | |
1852 | 1847 |
@@ -2045,9 +2040,7 @@ | ||
2045 | 2040 | |
2046 | 2041 | int CFusionView::GetTool(void) |
2047 | 2042 | { |
2048 | - CFusionDoc* pDoc = GetDocument(); | |
2049 | - | |
2050 | - return pDoc->mCurrentTool; | |
2043 | + return App->CLSB_Doc->mCurrentTool; | |
2051 | 2044 | } |
2052 | 2045 | |
2053 | 2046 | fdocAdjustEnum CFusionView::GetAdjustMode(void) |
@@ -2059,16 +2052,12 @@ | ||
2059 | 2052 | |
2060 | 2053 | int CFusionView::GetModeTool(void) |
2061 | 2054 | { |
2062 | - CFusionDoc* pDoc = GetDocument(); | |
2063 | - | |
2064 | - return pDoc->mModeTool; | |
2055 | + return App->CLSB_Doc->mModeTool; | |
2065 | 2056 | } |
2066 | 2057 | |
2067 | 2058 | void CFusionView::SetTool(int Tool) |
2068 | 2059 | { |
2069 | - CFusionDoc* pDoc = GetDocument(); | |
2070 | - | |
2071 | - pDoc->mCurrentTool = Tool; | |
2060 | + App->CLSB_Doc->mCurrentTool = Tool; | |
2072 | 2061 | } |
2073 | 2062 | |
2074 | 2063 | void CFusionView::SetAdjustMode(fdocAdjustEnum Mode) |
@@ -2081,9 +2070,7 @@ | ||
2081 | 2070 | |
2082 | 2071 | void CFusionView::SetModeTool(int Tool) |
2083 | 2072 | { |
2084 | - CFusionDoc* pDoc = GetDocument(); | |
2085 | - | |
2086 | - pDoc->mModeTool = Tool; | |
2073 | + App->CLSB_Doc->mModeTool = Tool; | |
2087 | 2074 | } |
2088 | 2075 | |
2089 | 2076 |
@@ -2125,7 +2112,7 @@ | ||
2125 | 2112 | { |
2126 | 2113 | CFusionDoc* pDoc = GetDocument(); |
2127 | 2114 | |
2128 | - if( (pDoc->mCurrentGroup == 0) || (pDoc->GetSelState() == NOSELECTIONS) ) | |
2115 | + if( (App->CLSB_Doc->mCurrentGroup == 0) || (pDoc->GetSelState() == NOSELECTIONS) ) | |
2129 | 2116 | pCmdUI->Enable( FALSE ) ; |
2130 | 2117 | else |
2131 | 2118 | pCmdUI->Enable( TRUE ) ; |
@@ -2675,7 +2662,7 @@ | ||
2675 | 2662 | |
2676 | 2663 | if (NumEntities) |
2677 | 2664 | { |
2678 | - if (pDoc->NumSelEntities == 0) | |
2665 | + if (App->CLSB_Doc->NumSelEntities == 0) | |
2679 | 2666 | { |
2680 | 2667 | pDoc->SelectEntity(&(*Entities)[0]); |
2681 | 2668 | App->CLSB_Doc->UpdateSelected (); |
@@ -2743,7 +2730,7 @@ | ||
2743 | 2730 | |
2744 | 2731 | if (NumEntities) |
2745 | 2732 | { |
2746 | - if (pDoc->NumSelEntities == 0) | |
2733 | + if (App->CLSB_Doc->NumSelEntities == 0) | |
2747 | 2734 | { |
2748 | 2735 | pDoc->SelectEntity(&(*Entities)[0]); |
2749 | 2736 | App->CLSB_Doc->UpdateSelected (); |
@@ -2977,7 +2964,7 @@ | ||
2977 | 2964 | { |
2978 | 2965 | CFusionDoc *pDoc = GetDocument (); |
2979 | 2966 | if (pDoc) { |
2980 | - if ((pDoc->GetSelState()!=NOSELECTIONS) || (pDoc->mModeTool == ID_TOOLS_TEMPLATE)) | |
2967 | + if ((pDoc->GetSelState()!=NOSELECTIONS) || (App->CLSB_Doc->mModeTool == ID_TOOLS_TEMPLATE)) | |
2981 | 2968 | pCmdUI->Enable( TRUE ); |
2982 | 2969 | else |
2983 | 2970 | pCmdUI->Enable( FALSE ); |
@@ -3179,7 +3166,7 @@ | ||
3179 | 3166 | return; |
3180 | 3167 | } |
3181 | 3168 | |
3182 | - if ((pDoc->GetSelState()!=NOSELECTIONS) || ((pDoc->mModeTool==ID_TOOLS_TEMPLATE) && !pDoc->PlaceObjectFlag)) | |
3169 | + if ((pDoc->GetSelState()!=NOSELECTIONS) || ((App->CLSB_Doc->mModeTool==ID_TOOLS_TEMPLATE) && !pDoc->PlaceObjectFlag)) | |
3183 | 3170 | pCmdUI->Enable( TRUE ); |
3184 | 3171 | else |
3185 | 3172 | pCmdUI->Enable( FALSE ); |
@@ -555,7 +555,7 @@ | ||
555 | 555 | brushDrawData.FlagTest = fdocBrushNotDetail; |
556 | 556 | brushDrawData.GroupId = GroupId; |
557 | 557 | if( (GroupVis == Group_ShowAll) || |
558 | - ((GroupVis == Group_ShowCurrent) && (GroupId == m_pDoc->mCurrentGroup)) || | |
558 | + ((GroupVis == Group_ShowCurrent) && (GroupId == App->CLSB_Doc->mCurrentGroup)) || | |
559 | 559 | ((GroupVis == Group_ShowVisible) && (Group_IsVisible (Groups, GroupId))) |
560 | 560 | ) |
561 | 561 | { |
@@ -567,7 +567,7 @@ | ||
567 | 567 | SelectObject(MemoryhDC, PenThisGroup); |
568 | 568 | |
569 | 569 | Level_EnumLeafBrushes (App->CLSB_Doc->pLevel, &brushDrawData, BrushDraw2); // Draw Brushes |
570 | - if( m_pDoc->mShowEntities == GE_TRUE ) | |
570 | + if(App->CLSB_Doc->mShowEntities == GE_TRUE ) | |
571 | 571 | { |
572 | 572 | //Level_EnumEntities (m_pDoc->pLevel, &brushDrawData, EntityDraw); |
573 | 573 | } |
@@ -668,8 +668,8 @@ | ||
668 | 668 | //pDC->SelectObject (&PenTemplate); |
669 | 669 | SelectObject(MemoryhDC, PenTemplate2); |
670 | 670 | |
671 | - if((m_pDoc->mModeTool==ID_TOOLS_TEMPLATE)|| | |
672 | - (m_pDoc->mModeTool==ID_TOOLS_CAMERA && m_pDoc->GetSelState()==NOSELECTIONS)) | |
671 | + if((App->CLSB_Doc->mModeTool==ID_TOOLS_TEMPLATE)|| | |
672 | + (App->CLSB_Doc->mModeTool==ID_TOOLS_CAMERA && m_pDoc->GetSelState()==NOSELECTIONS)) | |
673 | 673 | { |
674 | 674 | if(!m_pDoc->TempEnt) |
675 | 675 | { |
@@ -164,11 +164,11 @@ | ||
164 | 164 | int NumSelFaces = SelFaceList_GetSize (pDoc->pSelFaces); |
165 | 165 | int NumSelBrushes = SelBrushList_GetSize (pDoc->pSelBrushes); |
166 | 166 | |
167 | - etxt.Format("Entities: %d", pDoc->NumSelEntities); | |
167 | + etxt.Format("Entities: %d", App->CLSB_Doc->NumSelEntities); | |
168 | 168 | btxt.Format(" Brushes: %d", NumSelBrushes); |
169 | 169 | ftxt.Format(" Faces: %d", NumSelFaces); |
170 | 170 | Text.Format("%s%s%s", |
171 | - pDoc->NumSelEntities ? etxt : "", | |
171 | + App->CLSB_Doc->NumSelEntities ? etxt : "", | |
172 | 172 | NumSelBrushes ? btxt : "", |
173 | 173 | NumSelFaces ? ftxt : ""); |
174 | 174 |
@@ -1060,13 +1060,12 @@ | ||
1060 | 1060 | |
1061 | 1061 | void CMainFrame::OnSelchangeGroupList () |
1062 | 1062 | { |
1063 | - CFusionDoc *pDoc = GetCurrentDoc (); | |
1064 | 1063 | int CurSel; |
1065 | 1064 | |
1066 | 1065 | CurSel = m_wndGroupBar.m_comboBox.GetCurSel (); |
1067 | 1066 | if (CurSel != LB_ERR) |
1068 | 1067 | { |
1069 | - pDoc->mCurrentGroup = m_wndGroupBar.m_comboBox.GetItemData (CurSel); | |
1068 | + App->CLSB_Doc->mCurrentGroup = m_wndGroupBar.m_comboBox.GetItemData (CurSel); | |
1070 | 1069 | App->CL_TabsGroups_Dlg->Fill_ListBox(); // hgtterry App->CL_TabsGroups_Dlg->Fill_ListBox() |
1071 | 1070 | } |
1072 | 1071 | } |
@@ -39,6 +39,8 @@ | ||
39 | 39 | Mouse_Fast = 0; |
40 | 40 | |
41 | 41 | Canceled = 0; |
42 | + TrueFlase = 0; | |
43 | + | |
42 | 44 | YesNoCancel_Result = 0; |
43 | 45 | |
44 | 46 | mWhatList = 0; |
@@ -905,6 +907,146 @@ | ||
905 | 907 | } |
906 | 908 | |
907 | 909 | // ************************************************************************* |
910 | +// * TrueFlase Terry Bernie * | |
911 | +// ************************************************************************* | |
912 | +void SB_Dialogs::Dialog_TrueFlase() | |
913 | +{ | |
914 | + if (App->CLSB_Equity->EquitySB_Dialog_Visible == 0) | |
915 | + { | |
916 | + DialogBox(App->hInst, (LPCTSTR)IDD_SB_TRUEFALSE, App->MainHwnd, (DLGPROC)Dialog_TrueFlase_Proc); | |
917 | + } | |
918 | + else | |
919 | + { | |
920 | + DialogBox(App->hInst, (LPCTSTR)IDD_SB_TRUEFALSE, App->Equity_Dlg_hWnd, (DLGPROC)Dialog_TrueFlase_Proc); | |
921 | + } | |
922 | +} | |
923 | +// ************************************************************************* | |
924 | +// * Dialog_TrueFlase_Proc * | |
925 | +// ************************************************************************* | |
926 | +LRESULT CALLBACK SB_Dialogs::Dialog_TrueFlase_Proc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) | |
927 | +{ | |
928 | + switch (message) | |
929 | + { | |
930 | + case WM_INITDIALOG: | |
931 | + { | |
932 | + SendDlgItemMessage(hDlg, IDC_TITLENAME, WM_SETFONT, (WPARAM)App->Font_Arial20, MAKELPARAM(TRUE, 0)); | |
933 | + SendDlgItemMessage(hDlg, IDC_CHECKNO, WM_SETFONT, (WPARAM)App->Font_CB15, MAKELPARAM(TRUE, 0)); | |
934 | + SendDlgItemMessage(hDlg, IDC_CHECKYES, WM_SETFONT, (WPARAM)App->Font_CB15, MAKELPARAM(TRUE, 0)); | |
935 | + | |
936 | + SendDlgItemMessage(hDlg, IDOK, WM_SETFONT, (WPARAM)App->Font_CB15, MAKELPARAM(TRUE, 0)); | |
937 | + SendDlgItemMessage(hDlg, IDCANCEL, WM_SETFONT, (WPARAM)App->Font_CB15, MAKELPARAM(TRUE, 0)); | |
938 | + | |
939 | + SetDlgItemText(hDlg, IDC_TITLENAME, (LPCTSTR)App->CLSB_Dialogs->btext); | |
940 | + | |
941 | + | |
942 | + if (App->CLSB_Dialogs->TrueFlase == 1) | |
943 | + { | |
944 | + HWND temp = GetDlgItem(hDlg, IDC_CHECKYES); | |
945 | + SendMessage(temp, BM_SETCHECK, 1, 0); | |
946 | + temp = GetDlgItem(hDlg, IDC_CHECKNO); | |
947 | + SendMessage(temp, BM_SETCHECK, 0, 0); | |
948 | + } | |
949 | + else | |
950 | + { | |
951 | + HWND temp = GetDlgItem(hDlg, IDC_CHECKYES); | |
952 | + SendMessage(temp, BM_SETCHECK, 0, 0); | |
953 | + temp = GetDlgItem(hDlg, IDC_CHECKNO); | |
954 | + SendMessage(temp, BM_SETCHECK, 1, 0); | |
955 | + } | |
956 | + return TRUE; | |
957 | + } | |
958 | + case WM_CTLCOLORSTATIC: | |
959 | + { | |
960 | + if (GetDlgItem(hDlg, IDC_TITLENAME) == (HWND)lParam) | |
961 | + { | |
962 | + SetBkColor((HDC)wParam, RGB(0, 255, 0)); | |
963 | + SetTextColor((HDC)wParam, RGB(0, 0, 255)); | |
964 | + SetBkMode((HDC)wParam, TRANSPARENT); | |
965 | + return (UINT)App->AppBackground; | |
966 | + } | |
967 | + if (GetDlgItem(hDlg, IDC_CHECKYES) == (HWND)lParam) | |
968 | + { | |
969 | + SetBkColor((HDC)wParam, RGB(0, 255, 0)); | |
970 | + SetTextColor((HDC)wParam, RGB(0, 0, 255)); | |
971 | + SetBkMode((HDC)wParam, TRANSPARENT); | |
972 | + return (UINT)App->AppBackground; | |
973 | + } | |
974 | + if (GetDlgItem(hDlg, IDC_CHECKNO) == (HWND)lParam) | |
975 | + { | |
976 | + SetBkColor((HDC)wParam, RGB(0, 255, 0)); | |
977 | + SetTextColor((HDC)wParam, RGB(0, 0, 255)); | |
978 | + SetBkMode((HDC)wParam, TRANSPARENT); | |
979 | + return (UINT)App->AppBackground; | |
980 | + } | |
981 | + return FALSE; | |
982 | + } | |
983 | + | |
984 | + case WM_CTLCOLORDLG: | |
985 | + { | |
986 | + return (LONG)App->AppBackground; | |
987 | + } | |
988 | + | |
989 | + case WM_NOTIFY: | |
990 | + { | |
991 | + LPNMHDR some_item = (LPNMHDR)lParam; | |
992 | + | |
993 | + if (some_item->idFrom == IDOK && some_item->code == NM_CUSTOMDRAW) | |
994 | + { | |
995 | + LPNMCUSTOMDRAW item = (LPNMCUSTOMDRAW)some_item; | |
996 | + App->Custom_Button_Normal(item); | |
997 | + return CDRF_DODEFAULT; | |
998 | + } | |
999 | + | |
1000 | + if (some_item->idFrom == IDCANCEL && some_item->code == NM_CUSTOMDRAW) | |
1001 | + { | |
1002 | + LPNMCUSTOMDRAW item = (LPNMCUSTOMDRAW)some_item; | |
1003 | + App->Custom_Button_Normal(item); | |
1004 | + return CDRF_DODEFAULT; | |
1005 | + } | |
1006 | + | |
1007 | + return CDRF_DODEFAULT; | |
1008 | + } | |
1009 | + | |
1010 | + case WM_COMMAND: | |
1011 | + if (LOWORD(wParam) == IDC_CHECKYES) | |
1012 | + { | |
1013 | + HWND temp = GetDlgItem(hDlg, IDC_CHECKYES); | |
1014 | + SendMessage(temp, BM_SETCHECK, 1, 0); | |
1015 | + temp = GetDlgItem(hDlg, IDC_CHECKNO); | |
1016 | + SendMessage(temp, BM_SETCHECK, 0, 0); | |
1017 | + App->CLSB_Dialogs->TrueFlase = 1; | |
1018 | + } | |
1019 | + | |
1020 | + if (LOWORD(wParam) == IDC_CHECKNO) | |
1021 | + { | |
1022 | + HWND temp = GetDlgItem(hDlg, IDC_CHECKNO); | |
1023 | + SendMessage(temp, BM_SETCHECK, 1, 0); | |
1024 | + temp = GetDlgItem(hDlg, IDC_CHECKYES); | |
1025 | + SendMessage(temp, BM_SETCHECK, 0, 0); | |
1026 | + App->CLSB_Dialogs->TrueFlase = 0; | |
1027 | + } | |
1028 | + | |
1029 | + if (LOWORD(wParam) == IDOK) | |
1030 | + { | |
1031 | + App->CLSB_Dialogs->Canceled = 0; | |
1032 | + EndDialog(hDlg, LOWORD(wParam)); | |
1033 | + return TRUE; | |
1034 | + } | |
1035 | + | |
1036 | + if (LOWORD(wParam) == IDCANCEL) | |
1037 | + { | |
1038 | + App->CLSB_Dialogs->Canceled = 1; | |
1039 | + EndDialog(hDlg, LOWORD(wParam)); | |
1040 | + return TRUE; | |
1041 | + } | |
1042 | + | |
1043 | + break; | |
1044 | + | |
1045 | + } | |
1046 | + return FALSE; | |
1047 | +} | |
1048 | + | |
1049 | +// ************************************************************************* | |
908 | 1050 | // * UpdateGroupDetails:- Terry and Hazel Flanigan 2023 * |
909 | 1051 | // ************************************************************************* |
910 | 1052 | void SB_Dialogs::UpdateGroupDetails(HWND List) |
@@ -34,9 +34,12 @@ | ||
34 | 34 | bool Start_ListData(int WhatList); |
35 | 35 | void Start_Speed_Camera(); |
36 | 36 | bool Start_Dialog_DropGen(); |
37 | + void Dialog_TrueFlase(); | |
37 | 38 | |
38 | 39 | bool Canceled; |
40 | + bool TrueFlase; | |
39 | 41 | |
42 | + | |
40 | 43 | int YesNoCancel_Result; |
41 | 44 | |
42 | 45 | char MessageString[100]; |
@@ -52,6 +55,7 @@ | ||
52 | 55 | static LRESULT CALLBACK ListData_Proc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); |
53 | 56 | static LRESULT CALLBACK Speed_Camera_Proc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); |
54 | 57 | static LRESULT CALLBACK Dialog_DropGen_Proc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); |
58 | + static LRESULT CALLBACK Dialog_TrueFlase_Proc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); | |
55 | 59 | |
56 | 60 | void List_SceneData(HWND hDlg); |
57 | 61 | void List_BoundingBox(HWND hDlg); |
@@ -10,6 +10,18 @@ | ||
10 | 10 | SB_Doc::SB_Doc(void) |
11 | 11 | { |
12 | 12 | pTempSelBrushes = NULL; |
13 | + mCurrentEntity = -1; | |
14 | + mShowSelectedFaces = FALSE; | |
15 | + IsNewDocument = 1; | |
16 | + mShowEntities = GE_TRUE; | |
17 | + mCurTextureSelection = 1; | |
18 | + mActiveView = -1; | |
19 | + mModeTool = ID_TOOLS_TEMPLATE; | |
20 | + mShowBrush = TRUE; | |
21 | + mCurrentTool = ID_TOOLS_BRUSH_MOVEROTATEBRUSH; | |
22 | + mCurrentBitmap = 0; | |
23 | + NumSelEntities = 0; | |
24 | + mCurrentGroup = 0; | |
13 | 25 | } |
14 | 26 | |
15 | 27 | SB_Doc::~SB_Doc(void) |
@@ -44,7 +56,7 @@ | ||
44 | 56 | |
45 | 57 | BOOL ReBuild; |
46 | 58 | |
47 | - if (App->m_pDoc->mModeTool == ID_GENERALSELECT) | |
59 | + if (mModeTool == ID_GENERALSELECT) | |
48 | 60 | { |
49 | 61 | // set wait cursor |
50 | 62 | SetCursor(AfxGetApp()->LoadStandardCursor(IDC_WAIT)); |
@@ -84,7 +96,7 @@ | ||
84 | 96 | { |
85 | 97 | if ((*Entities)[Ent].IsCamera() == GE_FALSE) // Exclude Cameras |
86 | 98 | { |
87 | - if ((*Entities)[Ent].GetGroupId() == App->m_pDoc->mCurrentGroup) | |
99 | + if ((*Entities)[Ent].GetGroupId() == mCurrentGroup) | |
88 | 100 | { |
89 | 101 | bAlteredCurrentGroup = GE_TRUE; |
90 | 102 | } |
@@ -107,7 +119,7 @@ | ||
107 | 119 | if (strstr(App->CL_Brush->Brush_GetName(pBrush), ".act") != NULL) |
108 | 120 | continue; |
109 | 121 | |
110 | - if (Brush_GetGroupId(pBrush) == App->m_pDoc->mCurrentGroup) | |
122 | + if (Brush_GetGroupId(pBrush) == mCurrentGroup) | |
111 | 123 | { |
112 | 124 | bAlteredCurrentGroup = GE_TRUE; |
113 | 125 | } |
@@ -118,7 +130,7 @@ | ||
118 | 130 | } |
119 | 131 | |
120 | 132 | //turn off any operation tools |
121 | - App->m_pDoc->mCurrentTool = CURTOOL_NONE; | |
133 | + mCurrentTool = CURTOOL_NONE; | |
122 | 134 | |
123 | 135 | App->m_pDoc->SetModifiedFlag(); |
124 | 136 | } |
@@ -157,7 +169,7 @@ | ||
157 | 169 | // end change |
158 | 170 | Entities->RemoveAt(EntityIndex); |
159 | 171 | App->m_pDoc->SelState &= (~ENTITYCLEAR); |
160 | - App->m_pDoc->SelState |= (App->m_pDoc->NumSelEntities > 1) ? MULTIENTITY : (App->m_pDoc->NumSelEntities + 1) << 7; | |
172 | + App->m_pDoc->SelState |= (NumSelEntities > 1) ? MULTIENTITY : (NumSelEntities + 1) << 7; | |
161 | 173 | } |
162 | 174 | |
163 | 175 | // ************************************************************************* |
@@ -281,7 +293,7 @@ | ||
281 | 293 | |
282 | 294 | App->m_pDoc->TempDeleteSelected(); |
283 | 295 | |
284 | - if (App->m_pDoc->mModeTool == ID_TOOLS_TEMPLATE) | |
296 | + if (mModeTool == ID_TOOLS_TEMPLATE) | |
285 | 297 | { |
286 | 298 | if (Brush_IsMulti(App->m_pDoc->CurBrush)) |
287 | 299 | { |
@@ -301,7 +313,7 @@ | ||
301 | 313 | if (strstr(App->CL_Brush->Brush_GetName(pBrush), ".act") != NULL) |
302 | 314 | continue; |
303 | 315 | |
304 | - Brush_ResizeFinal(pBrush, sides, inidx, &App->m_pDoc->FinalScale); | |
316 | + Brush_ResizeFinal(pBrush, sides, inidx, &FinalScale); | |
305 | 317 | if (Brush_IsMulti(pBrush)) |
306 | 318 | { |
307 | 319 | BrushList_ClearCSGAndHollows((BrushList*)App->CL_Brush->Brush_GetBrushList(pBrush), Brush_GetModelId(pBrush)); |
@@ -324,7 +336,7 @@ | ||
324 | 336 | |
325 | 337 | App->m_pDoc->TempDeleteSelected(); |
326 | 338 | |
327 | - if (App->m_pDoc->mModeTool == ID_TOOLS_TEMPLATE) | |
339 | + if (mModeTool == ID_TOOLS_TEMPLATE) | |
328 | 340 | { |
329 | 341 | if (App->m_pDoc->TempEnt) |
330 | 342 | { |
@@ -434,7 +446,7 @@ | ||
434 | 446 | |
435 | 447 | App->m_pDoc->DoGeneralSelect(); |
436 | 448 | |
437 | - App->m_pDoc->NumSelEntities = 0; | |
449 | + NumSelEntities = 0; | |
438 | 450 | Level_EnumEntities(pLevel, this, fdocSelectEntity); |
439 | 451 | Level_EnumBrushes(pLevel, this, fdocSelectBrush); |
440 | 452 |
@@ -477,10 +489,10 @@ | ||
477 | 489 | |
478 | 490 | App->m_pDoc->SelState = (NumSelBrushes > 1) ? MULTIBRUSH : NumSelBrushes; |
479 | 491 | App->m_pDoc->SelState |= (NumSelFaces > 1) ? MULTIFACE : (NumSelFaces + 1) << 3; |
480 | - App->m_pDoc->SelState |= (App->m_pDoc->NumSelEntities > 1) ? MULTIENTITY : (App->m_pDoc->NumSelEntities + 1) << 7; | |
492 | + App->m_pDoc->SelState |= (NumSelEntities > 1) ? MULTIENTITY : (NumSelEntities + 1) << 7; | |
481 | 493 | |
482 | 494 | |
483 | - if (App->m_pDoc->mModeTool == ID_GENERALSELECT) | |
495 | + if (mModeTool == ID_GENERALSELECT) | |
484 | 496 | { |
485 | 497 | if (App->m_pDoc->GetSelState() & ONEBRUSH) |
486 | 498 | App->m_pDoc->CurBrush = SelBrushList_GetBrush(App->m_pDoc->pSelBrushes, 0); |
@@ -490,7 +502,7 @@ | ||
490 | 502 | |
491 | 503 | geVec3d_Clear(&SelectedGeoCenter); |
492 | 504 | |
493 | - if (App->m_pDoc->mModeTool == ID_TOOLS_TEMPLATE) | |
505 | + if (mModeTool == ID_TOOLS_TEMPLATE) | |
494 | 506 | { |
495 | 507 | if (App->m_pDoc->TempEnt) |
496 | 508 | { |
@@ -518,7 +530,7 @@ | ||
518 | 530 | { |
519 | 531 | SelBrushList_Center(App->m_pDoc->pSelBrushes, &SelectedGeoCenter); |
520 | 532 | } |
521 | - else if (App->m_pDoc->NumSelEntities) | |
533 | + else if (NumSelEntities) | |
522 | 534 | { |
523 | 535 | geVec3d EntitySelectionCenter = { 0.0f,0.0f,0.0f }; |
524 | 536 |
@@ -537,7 +549,7 @@ | ||
537 | 549 | } |
538 | 550 | } |
539 | 551 | |
540 | - geVec3d_Scale(&EntitySelectionCenter, 1 / (float)(App->m_pDoc->NumSelEntities), &SelectedGeoCenter); | |
552 | + geVec3d_Scale(&EntitySelectionCenter, 1 / (float)(NumSelEntities), &SelectedGeoCenter); | |
541 | 553 | } |
542 | 554 | } |
543 | 555 | } |
@@ -547,11 +559,11 @@ | ||
547 | 559 | CEntityArray* Entities = Level_GetEntities(pLevel); |
548 | 560 | |
549 | 561 | for (i = 0; i < Entities->GetSize() && !((*Entities)[i].IsSelected()); i++); |
550 | - App->m_pDoc->mCurrentEntity = i; | |
562 | + mCurrentEntity = i; | |
551 | 563 | } |
552 | 564 | else |
553 | 565 | { |
554 | - App->m_pDoc->mCurrentEntity = -1; | |
566 | + mCurrentEntity = -1; | |
555 | 567 | } |
556 | 568 | |
557 | 569 | App->m_pDoc->UpdateFaceAttributesDlg(); |
@@ -33,9 +33,16 @@ | ||
33 | 33 | void MoveSelectedBrushes(geVec3d const* v); |
34 | 34 | void MoveSelectedBrushList(SelBrushList* pList, geVec3d const* v); |
35 | 35 | |
36 | - int mLastOp; | |
37 | - geVec3d SelectedGeoCenter, FinalPos; | |
36 | + int NumSelEntities; | |
37 | + int mShowSelectedFaces; | |
38 | + int mCurrentTool, mCurrentBitmap, mShowBrush, mModeTool; | |
39 | + int mShowEntities, mCurrentGroup, mCurTextureSelection; | |
40 | + int IsNewDocument, mActiveView; | |
38 | 41 | |
42 | + int mLastOp, mCurrentEntity, ScaleNum; | |
43 | + | |
44 | + geVec3d SelectedGeoCenter, FinalPos, FinalRot, FinalScale; | |
45 | + | |
39 | 46 | SelBrushList* pTempSelBrushes; |
40 | 47 | |
41 | 48 | Level* pLevel; |
@@ -32,3 +32,756 @@ | ||
32 | 32 | SB_Environment::~SB_Environment(void) |
33 | 33 | { |
34 | 34 | } |
35 | + | |
36 | +// ************************************************************************* | |
37 | +// * V_Set_Environ_Defaults:- Terry and Hazel Flanigan 2023 * | |
38 | +// ************************************************************************* | |
39 | +void SB_Environment::V_Set_Environ_Defaults(int Index) | |
40 | +{ | |
41 | + Base_Object* V_Object = App->CLSB_Scene->V_Object[Index]; | |
42 | + | |
43 | + V_Object->Altered = 0; | |
44 | + | |
45 | + V_Object->S_Environ[0]->Environment_ID = 0; | |
46 | + strcpy(V_Object->S_Environ[0]->Environment_Name, "Not_Set"); | |
47 | + | |
48 | + V_Object->S_Environ[0]->Environ_Enabled = 1; | |
49 | + | |
50 | + //----------------------- Sound | |
51 | + strcpy(V_Object->S_Environ[0]->Sound_File, "The_Sun.ogg"); | |
52 | + V_Object->S_Environ[0]->SndFile = NULL; | |
53 | + V_Object->S_Environ[0]->Play = 0; | |
54 | + V_Object->S_Environ[0]->Loop = 1; | |
55 | + V_Object->S_Environ[0]->SndVolume = 0.5; | |
56 | + | |
57 | + //----------------------- Light | |
58 | + V_Object->S_Environ[0]->AmbientColour.x = 0.5; | |
59 | + V_Object->S_Environ[0]->AmbientColour.y = 0.5; | |
60 | + V_Object->S_Environ[0]->AmbientColour.z = 0.5; | |
61 | + | |
62 | + V_Object->S_Environ[0]->Light_Position.x = 0; | |
63 | + V_Object->S_Environ[0]->Light_Position.y = 0; | |
64 | + V_Object->S_Environ[0]->Light_Position.z = 0; | |
65 | + | |
66 | + // Sky | |
67 | + V_Object->S_Environ[0]->Curvature = 15; | |
68 | + V_Object->S_Environ[0]->Distance = 4000; | |
69 | + V_Object->S_Environ[0]->Enabled = 1; | |
70 | + strcpy(V_Object->S_Environ[0]->Material, "Examples/CloudySky"); | |
71 | + V_Object->S_Environ[0]->Tiling = 15; | |
72 | + V_Object->S_Environ[0]->type = 1; | |
73 | + | |
74 | + // Fog | |
75 | + V_Object->S_Environ[0]->Fog_On = 1; | |
76 | + V_Object->S_Environ[0]->Fog_Mode = FOG_LINEAR; | |
77 | + V_Object->S_Environ[0]->Fog_Density = 0.001000; | |
78 | + V_Object->S_Environ[0]->Fog_Start = 150; | |
79 | + V_Object->S_Environ[0]->Fog_End = 1000; | |
80 | + V_Object->S_Environ[0]->Fog_Colour = Ogre::Vector3(1, 1, 1); | |
81 | + | |
82 | + V_Object->S_Environ[0]->IsMainEnvironment = 0; | |
83 | +} | |
84 | + | |
85 | +// ************************************************************************* | |
86 | +// * Add_New_Environ_Entiry:- Terry and Hazel Flanigan 2022 * | |
87 | +// ************************************************************************* | |
88 | +bool SB_Environment::Add_New_Environ_Entity(bool FirstOne) | |
89 | +{ | |
90 | + char B_Name[MAX_PATH]; | |
91 | + char ConNum[MAX_PATH]; | |
92 | + | |
93 | + int Index = App->CLSB_Scene->Object_Count; | |
94 | + | |
95 | + App->CLSB_Scene->V_Object[Index] = new Base_Object(); | |
96 | + App->CLSB_Scene->V_Object[Index]->S_Environ[0] = new Environ_type; | |
97 | + V_Set_Environ_Defaults(Index); | |
98 | + | |
99 | + | |
100 | + App->CLSB_Scene->V_Object[Index]->Type = Enums::Bullet_Type_Static; | |
101 | + App->CLSB_Scene->V_Object[Index]->Shape = Enums::Shape_Box; | |
102 | + //App->CLSB_Scene->V_Object[Index]->This_Object_UniqueID = App->CLSB_Scene->UniqueID_Object_Counter; // Unique ID | |
103 | + | |
104 | + strcpy(App->CLSB_Scene->V_Object[Index]->Mesh_FileName, "EnvironmentEntity_GD.mesh"); | |
105 | + | |
106 | + strcpy_s(B_Name, "Environ_"); | |
107 | + _itoa(Index, ConNum, 10); | |
108 | + strcat(B_Name, ConNum); | |
109 | + strcpy(App->CLSB_Scene->V_Object[Index]->Mesh_Name, B_Name); | |
110 | + | |
111 | + //if (FirstOne == 0) | |
112 | + //{ | |
113 | + // Ogre::Vector3 Pos = App->CL_Object->GetPlacement(-50); | |
114 | + // App->SBC_Scene->V_Object[Index]->Mesh_Pos = Pos; | |
115 | + //} | |
116 | + //else | |
117 | + //{ | |
118 | + // Ogre::Vector3 Pos = Ogre::Vector3(0, 0, 0); | |
119 | + //} | |
120 | + | |
121 | + //Create_Environ_Entity(Index); | |
122 | + | |
123 | + HTREEITEM Temp = App->CLSB_FileView->Add_Item(App->CLSB_FileView->FV_Evirons_Folder, App->CLSB_Scene->V_Object[Index]->Mesh_Name, Index, false); | |
124 | + App->CLSB_Scene->V_Object[Index]->FileViewItem = Temp; | |
125 | + | |
126 | + App->CLSB_FileView->Set_FolderActive(App->CLSB_FileView->FV_Evirons_Folder); | |
127 | + //App->SBC_FileView->SelectItem(App->SBC_Scene->V_Object[Index]->FileViewItem); | |
128 | + | |
129 | + //App->SBC_Scene->UniqueID_Object_Counter++; | |
130 | + App->CLSB_Scene->Object_Count++; | |
131 | + | |
132 | + //App->SBC_FileView->Set_FolderActive(App->SBC_FileView->FV_Sounds_Folder); | |
133 | + return 1; | |
134 | +} | |
135 | + | |
136 | +// ************************************************************************* | |
137 | +// * Set_First_Environment:- Terry and Hazel Flanigan 2022 * | |
138 | +// ************************************************************************* | |
139 | +void SB_Environment::Set_First_Environment(int Index) | |
140 | +{ | |
141 | + float x = App->CLSB_Scene->V_Object[Index]->S_Environ[0]->AmbientColour.x; | |
142 | + float y = App->CLSB_Scene->V_Object[Index]->S_Environ[0]->AmbientColour.y; | |
143 | + float z = App->CLSB_Scene->V_Object[Index]->S_Environ[0]->AmbientColour.z; | |
144 | + | |
145 | + App->CLSB_Ogre->mSceneMgr->setAmbientLight(ColourValue(x, y, z)); | |
146 | + | |
147 | + if (App->CLSB_Scene->V_Object[Index]->S_Environ[0]->Fog_On == 1) | |
148 | + { | |
149 | + float Start = App->CLSB_Scene->V_Object[Index]->S_Environ[0]->Fog_Start; | |
150 | + float End = App->CLSB_Scene->V_Object[Index]->S_Environ[0]->Fog_End; | |
151 | + float Density = App->CLSB_Scene->V_Object[Index]->S_Environ[0]->Fog_Density; | |
152 | + | |
153 | + float x = App->CLSB_Scene->V_Object[Index]->S_Environ[0]->Fog_Colour.x; | |
154 | + float y = App->CLSB_Scene->V_Object[Index]->S_Environ[0]->Fog_Colour.y; | |
155 | + float z = App->CLSB_Scene->V_Object[Index]->S_Environ[0]->Fog_Colour.z; | |
156 | + | |
157 | + App->CLSB_Ogre->mSceneMgr->setFog(FOG_LINEAR, ColourValue(x, y, z), Density, (Ogre::Real)Start, (Ogre::Real)End); | |
158 | + } | |
159 | + else | |
160 | + { | |
161 | + App->CLSB_Ogre->mSceneMgr->setFog(FOG_NONE, ColourValue(0.7, 0.7, 0.8), 0, 100, 1000); | |
162 | + } | |
163 | + | |
164 | + if (App->CLSB_Scene->V_Object[Index]->S_Environ[0]->Enabled == 1) | |
165 | + { | |
166 | + App->CLSB_Ogre->mSceneMgr->setSkyDome(true, | |
167 | + App->CLSB_Scene->V_Object[Index]->S_Environ[0]->Material, | |
168 | + App->CLSB_Scene->V_Object[Index]->S_Environ[0]->Curvature, | |
169 | + App->CLSB_Scene->V_Object[Index]->S_Environ[0]->Tiling, | |
170 | + App->CLSB_Scene->V_Object[Index]->S_Environ[0]->Distance); | |
171 | + } | |
172 | + else | |
173 | + { | |
174 | + | |
175 | + } | |
176 | + | |
177 | + App->CLSB_Scene->V_Object[Index]->S_Environ[0]->IsMainEnvironment = 1; | |
178 | + App->CLSB_Scene->V_Object[Index]->Usage = Enums::Usage_EnvironEntity; | |
179 | +} | |
180 | + | |
181 | +// ************************************************************************* | |
182 | +// * Mark_As_Altered_Environ:- Terry and Hazel Flanigan 2022 * | |
183 | +// ************************************************************************* | |
184 | +void SB_Environment::Mark_As_Altered_Environ(int Index) | |
185 | +{ | |
186 | + App->CLSB_Scene->V_Object[Index]->Altered = 1; | |
187 | + | |
188 | + App->CLSB_Scene->Scene_Modified = 1; | |
189 | + | |
190 | + App->CLSB_FileView->Mark_Altered(App->CLSB_Scene->V_Object[Index]->FileViewItem); | |
191 | +} | |
192 | + | |
193 | +// ************************************************************************* | |
194 | +// * Set_Environment_By_Index:- Terry and Hazel Flanigan 2022 * | |
195 | +// ************************************************************************* | |
196 | +int SB_Environment::Set_Environment_By_Index(bool PlayMusic, int Index) | |
197 | +{ | |
198 | + | |
199 | + float x = App->CLSB_Scene->V_Object[Index]->S_Environ[0]->AmbientColour.x; | |
200 | + float y = App->CLSB_Scene->V_Object[Index]->S_Environ[0]->AmbientColour.y; | |
201 | + float z = App->CLSB_Scene->V_Object[Index]->S_Environ[0]->AmbientColour.z; | |
202 | + App->CLSB_Ogre->mSceneMgr->setAmbientLight(ColourValue(x, y, z)); | |
203 | + | |
204 | + | |
205 | + // Fog | |
206 | + if (App->CLSB_Scene->V_Object[Index]->S_Environ[0]->Fog_On == 1) | |
207 | + { | |
208 | + float Start = App->CLSB_Scene->V_Object[Index]->S_Environ[0]->Fog_Start; | |
209 | + float End = App->CLSB_Scene->V_Object[Index]->S_Environ[0]->Fog_End; | |
210 | + float Density = App->CLSB_Scene->V_Object[Index]->S_Environ[0]->Fog_Density; | |
211 | + | |
212 | + float x = App->CLSB_Scene->V_Object[Index]->S_Environ[0]->Fog_Colour.x; | |
213 | + float y = App->CLSB_Scene->V_Object[Index]->S_Environ[0]->Fog_Colour.y; | |
214 | + float z = App->CLSB_Scene->V_Object[Index]->S_Environ[0]->Fog_Colour.z; | |
215 | + | |
216 | + App->CLSB_Ogre->mSceneMgr->setFog(FOG_LINEAR, ColourValue(x, y, z), Density, (Ogre::Real)Start, (Ogre::Real)End); | |
217 | + } | |
218 | + else | |
219 | + { | |
220 | + App->CLSB_Ogre->mSceneMgr->setFog(FOG_NONE, ColourValue(0.7, 0.7, 0.8), 0, 100, 1000); | |
221 | + } | |
222 | + | |
223 | + if (PlayMusic == 1) | |
224 | + { | |
225 | + /*char buff[1024]; | |
226 | + strcpy(buff, App->CLSB_SoundMgr->Default_Folder); | |
227 | + strcat(buff, "\\Media\\Sounds\\"); | |
228 | + | |
229 | + if (App->CLSB_Scene->V_Object[Index]->S_Environ[0]->Play == 1) | |
230 | + { | |
231 | + strcat(buff, App->CLSB_Scene->V_Object[Index]->S_Environ[0]->Sound_File); | |
232 | + | |
233 | + App->CLSB_Scene->V_Object[Index]->S_Environ[0]->SndFile = App->SBC_SoundMgr->SoundEngine->play2D(buff, App->SBC_Scene->V_Object[Index]->S_Environ[0]->Loop, true, true); | |
234 | + | |
235 | + App->CLSB_Scene->V_Object[Index]->S_Environ[0]->SndFile->setVolume(App->SBC_Scene->V_Object[Index]->S_Environ[0]->SndVolume); | |
236 | + App->CLSB_Scene->V_Object[Index]->S_Environ[0]->SndFile->setIsPaused(false); | |
237 | + }*/ | |
238 | + } | |
239 | + else | |
240 | + { | |
241 | + /*if (App->CLSB_Scene->V_Object[Index]->S_Environ[0]->SndFile == NULL) | |
242 | + { | |
243 | + } | |
244 | + else | |
245 | + { | |
246 | + App->CLSB_Scene->V_Object[Index]->S_Environ[0]->SndFile->setIsPaused(true); | |
247 | + App->CLSB_Scene->V_Object[Index]->S_Environ[0]->SndFile->drop(); | |
248 | + App->CLSB_Scene->V_Object[Index]->S_Environ[0]->SndFile = NULL; | |
249 | + }*/ | |
250 | + } | |
251 | + | |
252 | + return 1; | |
253 | +} | |
254 | + | |
255 | +// ************************************************************************* | |
256 | +// * Get_First_Environ:- Terry and Hazel Flanigan 2022 * | |
257 | +// ************************************************************************* | |
258 | +int SB_Environment::Get_First_Environ() | |
259 | +{ | |
260 | + int Count = 0; | |
261 | + while (Count < App->CLSB_Scene->Object_Count) | |
262 | + { | |
263 | + if (App->CLSB_Scene->V_Object[Count]->Usage == Enums::Usage_EnvironEntity && App->CLSB_Scene->V_Object[Count]->S_Environ[0]->IsMainEnvironment == 1) | |
264 | + { | |
265 | + return Count; | |
266 | + } | |
267 | + | |
268 | + Count++; | |
269 | + } | |
270 | + | |
271 | + return -1; | |
272 | +} | |
273 | + | |
274 | +// ---------------------------------------------------------------------------------------------------------------- | |
275 | +// ************************************************************************* | |
276 | +// * Start_Environment_Editor:- Terry and Hazel Flanigan 2023 * | |
277 | +// ************************************************************************* | |
278 | +void SB_Environment::Start_Environment_Editor(int Index, bool IsTeleport) | |
279 | +{ | |
280 | + Eviron_Index = Index; | |
281 | + Is_Teleport = IsTeleport; | |
282 | + | |
283 | + Float_Exit = 0; | |
284 | + | |
285 | + Ambient_Colour_Copy.x = App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->AmbientColour.x; | |
286 | + Ambient_Colour_Copy.y = App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->AmbientColour.y; | |
287 | + Ambient_Colour_Copy.z = App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->AmbientColour.z; | |
288 | + | |
289 | + Ambient_Colour.x = App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->AmbientColour.x; | |
290 | + Ambient_Colour.y = App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->AmbientColour.y; | |
291 | + Ambient_Colour.z = App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->AmbientColour.z; | |
292 | + | |
293 | + Ambient_Int_Red = Ambient_Colour.x * 255; | |
294 | + Ambient_Int_Green = Ambient_Colour.y * 255; | |
295 | + Ambient_Int_Blue = Ambient_Colour.z * 255; | |
296 | + | |
297 | + Fog_Colour_Copy.x = App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->Fog_Colour.x; | |
298 | + Fog_Colour_Copy.y = App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->Fog_Colour.y; | |
299 | + Fog_Colour_Copy.z = App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->Fog_Colour.z; | |
300 | + | |
301 | + Fog_Colour.x = App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->Fog_Colour.x; | |
302 | + Fog_Colour.y = App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->Fog_Colour.y; | |
303 | + Fog_Colour.z = App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->Fog_Colour.z; | |
304 | + | |
305 | + Fog_Colour_Int_Red = Fog_Colour.x * 255; | |
306 | + Fog_Colour_Int_Green = Fog_Colour.y * 255; | |
307 | + Fog_Colour_Int_Blue = Fog_Colour.z * 255; | |
308 | + | |
309 | + | |
310 | + /*App->Disable_Panels(true); | |
311 | + App->Show_Panels(false);*/ | |
312 | + | |
313 | + App->CLSB_FileView->Show_FileView(false); | |
314 | + //App->CLSB_Com_Environments->Set_Environment_By_Index(1, Eviron_Index); | |
315 | + | |
316 | + Show_PropertyEditor = 1; | |
317 | +} | |
318 | + | |
319 | +// ************************************************************************* | |
320 | +// * Environ_PropertyEditor:- Terry and Hazel Flanigan 2022 * | |
321 | +// ************************************************************************* | |
322 | +void SB_Environment::Environ_PropertyEditor() | |
323 | +{ | |
324 | + | |
325 | + ImGui::SetNextWindowPos(ImVec2(10, 10), ImGuiCond_FirstUseEver); | |
326 | + ImGui::SetNextWindowSize(ImVec2(350, 190), ImGuiCond_FirstUseEver); | |
327 | + | |
328 | + if (!ImGui::Begin("Environment Editor", &Show_PropertyEditor, ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoTitleBar)) | |
329 | + { | |
330 | + ImGui::End(); | |
331 | + return; | |
332 | + } | |
333 | + | |
334 | + ImGuiColorEditFlags misc_flags2 = (ImGuiColorEditFlags_DisplayRGB | ImGuiColorEditFlags_InputRGB | ImGuiColorEditFlags_Uint8); | |
335 | + | |
336 | + ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(2, 2)); | |
337 | + ImGui::PushStyleColor(ImGuiCol_WindowBg, IM_COL32(213, 222, 242, 255)); | |
338 | + | |
339 | + ImGui::Columns(2); | |
340 | + ImGui::SetColumnWidth(-1, 120); | |
341 | + | |
342 | + if (ImGui::Button(" Main Light ", ImVec2(100, 0))) | |
343 | + { | |
344 | + PropertyEditor_Page = 0; | |
345 | + } | |
346 | + | |
347 | + if (ImGui::Button("Sound ", ImVec2(100, 0))) | |
348 | + { | |
349 | + PropertyEditor_Page = 1; | |
350 | + } | |
351 | + | |
352 | + if (ImGui::Button("Fog ", ImVec2(100, 0))) | |
353 | + { | |
354 | + PropertyEditor_Page = 2; | |
355 | + } | |
356 | + | |
357 | + if (ImGui::Button("Sky ", ImVec2(100, 0))) | |
358 | + { | |
359 | + PropertyEditor_Page = 3; | |
360 | + } | |
361 | + | |
362 | + ImGui::Spacing(); | |
363 | + ImGui::Spacing(); | |
364 | + ImGui::Spacing(); | |
365 | + ImGui::Spacing(); | |
366 | + | |
367 | + // ---------------------------------------------------------------- Main Light | |
368 | + if (PropertyEditor_Page == 0) | |
369 | + { | |
370 | + ImGui::NextColumn(); | |
371 | + ImGui::AlignTextToFramePadding(); | |
372 | + | |
373 | + ImGui::Text("Ambient Colour:"); | |
374 | + ImGui::SameLine(); | |
375 | + | |
376 | + if (ImGui::ColorEdit3("", (float*)&Ambient_Colour, ImGuiColorEditFlags_NoInputs | misc_flags2)) | |
377 | + { | |
378 | + Ambient_Int_Red = Ambient_Colour.x * 255; | |
379 | + Ambient_Int_Green = Ambient_Colour.y * 255; | |
380 | + Ambient_Int_Blue = Ambient_Colour.z * 255; | |
381 | + | |
382 | + App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->AmbientColour = Ogre::Vector3(Ambient_Colour.x, Ambient_Colour.y, Ambient_Colour.z); | |
383 | + App->CLSB_Ogre->mSceneMgr->setAmbientLight(ColourValue(Ambient_Colour.x, Ambient_Colour.y, Ambient_Colour.z)); | |
384 | + | |
385 | + Mark_As_Altered_Environ(Eviron_Index); | |
386 | + } | |
387 | + | |
388 | + } | |
389 | + | |
390 | + // ---------------------------------------------------------------- Sound | |
391 | + if (PropertyEditor_Page == 1) | |
392 | + { | |
393 | + ImGui::NextColumn(); | |
394 | + ImGui::AlignTextToFramePadding(); | |
395 | + | |
396 | + ImGui::Selectable("Track:- ", &ClickOnTrack); | |
397 | + ImGui::SameLine(); | |
398 | + ImGui::Text("%s", App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->Sound_File); | |
399 | + | |
400 | + if (ClickOnTrack) | |
401 | + { | |
402 | + ImGui::TextColored(ImVec4(0.f, 1.f, 0.24f, 1.f), "ON"); | |
403 | + | |
404 | + App->CLSB_SoundMgr->Accessed = 1; | |
405 | + strcpy(App->CLSB_SoundMgr->Access_File, App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->Sound_File); | |
406 | + | |
407 | + App->CLSB_Environment->Set_Environment_By_Index(0, Eviron_Index); | |
408 | + //App->CLSB_SoundMgr->Dialog_SoundFile(); | |
409 | + | |
410 | + if (App->CLSB_SoundMgr->IsCancelled == 0) | |
411 | + { | |
412 | + | |
413 | + strcpy(App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->Sound_File, App->CLSB_SoundMgr->Access_File); | |
414 | + App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->SndVolume = App->CLSB_SoundMgr->SndVolume; | |
415 | + | |
416 | + App->CLSB_Environment->Set_Environment_By_Index(1, Eviron_Index); | |
417 | + | |
418 | + App->CLSB_Environment->Mark_As_Altered_Environ(Eviron_Index); | |
419 | + } | |
420 | + else | |
421 | + { | |
422 | + App->CLSB_Environment->Set_Environment_By_Index(1, Eviron_Index); | |
423 | + } | |
424 | + | |
425 | + ClickOnTrack = 0; | |
426 | + } | |
427 | + | |
428 | + // ----------------- Volume | |
429 | + ImGui::Selectable("Volume:- ", &ClickOnVolume); | |
430 | + ImGui::SameLine(); | |
431 | + ImGui::Text("%f", App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->SndVolume); | |
432 | + if (ClickOnVolume) | |
433 | + { | |
434 | + Mark_As_Altered_Environ(Eviron_Index); | |
435 | + ClickOnVolume = 0; | |
436 | + } | |
437 | + | |
438 | + // ----------------- Play | |
439 | + ImGui::Selectable("Play:- ", &ClickOnPlay); | |
440 | + ImGui::SameLine(); | |
441 | + ImGui::Text("%i", App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->Play); | |
442 | + if (ClickOnPlay) | |
443 | + { | |
444 | + strcpy(App->CLSB_Dialogs->btext, "Set Play Sound Track"); | |
445 | + | |
446 | + App->CLSB_Dialogs->TrueFlase = App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->Play; | |
447 | + | |
448 | + App->CLSB_Dialogs->Dialog_TrueFlase(); | |
449 | + | |
450 | + if (App->CLSB_Dialogs->Canceled == 0) | |
451 | + { | |
452 | + if (App->CLSB_Dialogs->TrueFlase == 1) | |
453 | + { | |
454 | + App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->Play = 1; | |
455 | + App->CLSB_Environment->Set_Environment_By_Index(1, Eviron_Index); | |
456 | + } | |
457 | + else | |
458 | + { | |
459 | + App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->Play = 0; | |
460 | + App->CLSB_Environment->Set_Environment_By_Index(0, Eviron_Index); | |
461 | + } | |
462 | + | |
463 | + Mark_As_Altered_Environ(Eviron_Index); | |
464 | + } | |
465 | + | |
466 | + Mark_As_Altered_Environ(Eviron_Index); | |
467 | + | |
468 | + ClickOnPlay = 0; | |
469 | + } | |
470 | + | |
471 | + // ----------------- Loop | |
472 | + ImGui::Selectable("Loop:- ", &ClickOnLoop); | |
473 | + ImGui::SameLine(); | |
474 | + ImGui::Text("%i", App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->Loop); | |
475 | + if (ClickOnLoop) | |
476 | + { | |
477 | + strcpy(App->CLSB_Dialogs->btext, "Set Play Sound Loop"); | |
478 | + | |
479 | + App->CLSB_Dialogs->TrueFlase = App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->Loop; | |
480 | + | |
481 | + App->CLSB_Dialogs->Dialog_TrueFlase(); | |
482 | + | |
483 | + if (App->CLSB_Dialogs->Canceled == 0) | |
484 | + { | |
485 | + if (App->CLSB_Dialogs->TrueFlase == 1) | |
486 | + { | |
487 | + App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->Loop = 1; | |
488 | + Set_Environment_By_Index(0, Eviron_Index); | |
489 | + Set_Environment_By_Index(1, Eviron_Index); | |
490 | + } | |
491 | + else | |
492 | + { | |
493 | + App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->Loop = 0; | |
494 | + Set_Environment_By_Index(0, Eviron_Index); | |
495 | + Set_Environment_By_Index(1, Eviron_Index); | |
496 | + } | |
497 | + | |
498 | + Mark_As_Altered_Environ(Eviron_Index); | |
499 | + } | |
500 | + | |
501 | + ClickOnLoop = 0; | |
502 | + } | |
503 | + } | |
504 | + | |
505 | + // ---------------------------------------------------------------- Fog | |
506 | + if (PropertyEditor_Page == 2) | |
507 | + { | |
508 | + ImGui::NextColumn(); | |
509 | + ImGui::AlignTextToFramePadding(); | |
510 | + | |
511 | + // ----------------- Visible | |
512 | + ImGui::Selectable("Visible:- ", &ClickOnFogVisible); | |
513 | + ImGui::SameLine(); | |
514 | + ImGui::Text("%i", App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->Fog_On); | |
515 | + if (ClickOnFogVisible) | |
516 | + { | |
517 | + strcpy(App->CLSB_Dialogs->btext, "Set Fog Visiblity"); | |
518 | + | |
519 | + App->CLSB_Dialogs->TrueFlase = App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->Fog_On; | |
520 | + | |
521 | + strcpy(App->CLSB_Dialogs->btext, "Set Fog On/Off"); | |
522 | + App->CLSB_Dialogs->Dialog_TrueFlase(); | |
523 | + | |
524 | + if (App->CLSB_Dialogs->Canceled == 0) | |
525 | + { | |
526 | + if (App->CLSB_Dialogs->TrueFlase == 1) | |
527 | + { | |
528 | + App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->Fog_On = 1; | |
529 | + EnableFog(true); | |
530 | + } | |
531 | + else | |
532 | + { | |
533 | + App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->Fog_On = 0; | |
534 | + EnableFog(false); | |
535 | + } | |
536 | + | |
537 | + Mark_As_Altered_Environ(Eviron_Index); | |
538 | + } | |
539 | + | |
540 | + | |
541 | + ClickOnFogVisible = 0; | |
542 | + } | |
543 | + | |
544 | + // ----------------- Mode | |
545 | + ImGui::Selectable("Mode:- ", &ClickOnFogMode); | |
546 | + ImGui::SameLine(); | |
547 | + ImGui::Text("%i", App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->Fog_Mode); | |
548 | + if (ClickOnFogMode) | |
549 | + { | |
550 | + ClickOnFogMode = 0; | |
551 | + } | |
552 | + | |
553 | + // ----------------- Fog Colour | |
554 | + ImGui::Text("Fog Colour:"); | |
555 | + ImGui::SameLine(); | |
556 | + | |
557 | + if (ImGui::ColorEdit3("", (float*)&Fog_Colour, ImGuiColorEditFlags_NoInputs | misc_flags2)) | |
558 | + { | |
559 | + Ambient_Int_Red = Fog_Colour.x * 255; | |
560 | + Ambient_Int_Green = Fog_Colour.y * 255; | |
561 | + Ambient_Int_Blue = Fog_Colour.z * 255; | |
562 | + | |
563 | + App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->Fog_Colour = Ogre::Vector3(Fog_Colour.x, Fog_Colour.y, Fog_Colour.z); | |
564 | + | |
565 | + if (App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->Fog_On == 1) | |
566 | + { | |
567 | + EnableFog(true); | |
568 | + } | |
569 | + | |
570 | + Mark_As_Altered_Environ(Eviron_Index); | |
571 | + } | |
572 | + | |
573 | + | |
574 | + | |
575 | + // ----------------- Start | |
576 | + ImGui::Text("Start:- ", App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->Fog_Start); | |
577 | + ImGui::SameLine(); | |
578 | + | |
579 | + if (ImGui::InputFloat("##1", &App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->Fog_Start, 1, 0, "%.3f")) | |
580 | + { | |
581 | + if (App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->Fog_On == 1) | |
582 | + { | |
583 | + EnableFog(true); | |
584 | + } | |
585 | + | |
586 | + Mark_As_Altered_Environ(Eviron_Index); | |
587 | + } | |
588 | + | |
589 | + // ----------------- End | |
590 | + ImGui::Text("End:- ", App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->Fog_End); | |
591 | + ImGui::SameLine(); | |
592 | + | |
593 | + if (ImGui::InputFloat("##2", &App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->Fog_End, 1, 0, "%.3f")) | |
594 | + { | |
595 | + if (App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->Fog_On == 1) | |
596 | + { | |
597 | + EnableFog(true); | |
598 | + } | |
599 | + | |
600 | + Mark_As_Altered_Environ(Eviron_Index); | |
601 | + } | |
602 | + | |
603 | + } | |
604 | + | |
605 | + // ---------------------------------------------------------------- Sky | |
606 | + if (PropertyEditor_Page == 3) | |
607 | + { | |
608 | + ImGui::NextColumn(); | |
609 | + ImGui::AlignTextToFramePadding(); | |
610 | + | |
611 | + // ----------------- Visible | |
612 | + ImGui::Selectable("Enabled:- ", &ClickOnSkyEnabled); | |
613 | + ImGui::SameLine(); | |
614 | + ImGui::Text("%i", App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->Enabled); | |
615 | + if (ClickOnSkyEnabled) | |
616 | + { | |
617 | + strcpy(App->CLSB_Dialogs->btext, "Set Sky Visiblity"); | |
618 | + | |
619 | + App->CLSB_Dialogs->TrueFlase = App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->Enabled; | |
620 | + | |
621 | + strcpy(App->CLSB_Dialogs->btext, "Set Sky On/Off"); | |
622 | + App->CLSB_Dialogs->Dialog_TrueFlase(); | |
623 | + | |
624 | + if (App->CLSB_Dialogs->Canceled == 0) | |
625 | + { | |
626 | + if (App->CLSB_Dialogs->TrueFlase == 1) | |
627 | + { | |
628 | + App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->Enabled = 1; | |
629 | + SetSky(1); | |
630 | + } | |
631 | + else | |
632 | + { | |
633 | + App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->Enabled = 0; | |
634 | + SetSky(0); | |
635 | + } | |
636 | + | |
637 | + Mark_As_Altered_Environ(Eviron_Index); | |
638 | + } | |
639 | + | |
640 | + ClickOnSkyEnabled = 0; | |
641 | + } | |
642 | + | |
643 | + // ----------------- Tiling | |
644 | + ImGui::Text("Tiling:- ", App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->Tiling); | |
645 | + ImGui::SameLine(); | |
646 | + | |
647 | + if (ImGui::InputFloat("##5", &App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->Tiling, 0.5, 0, "%.3f")) | |
648 | + { | |
649 | + if (App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->Enabled == 1) | |
650 | + { | |
651 | + SetSky(true); | |
652 | + } | |
653 | + | |
654 | + Mark_As_Altered_Environ(Eviron_Index); | |
655 | + } | |
656 | + | |
657 | + // ----------------- Curvature | |
658 | + ImGui::Text("Curve:- ", App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->Curvature); | |
659 | + ImGui::SameLine(); | |
660 | + | |
661 | + if (ImGui::InputFloat("##6", &App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->Curvature, 0.5, 0, "%.3f")) | |
662 | + { | |
663 | + if (App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->Enabled == 1) | |
664 | + { | |
665 | + SetSky(true); | |
666 | + } | |
667 | + | |
668 | + Mark_As_Altered_Environ(Eviron_Index); | |
669 | + } | |
670 | + | |
671 | + } | |
672 | + | |
673 | + ImGui::PopStyleVar(); | |
674 | + ImGui::Columns(0); | |
675 | + | |
676 | + ImGui::Spacing(); | |
677 | + ImGui::Spacing(); | |
678 | + | |
679 | + if (ImGui::Button("Close", ImVec2(100, 0))) | |
680 | + { | |
681 | + Close_Environment_Editor(); | |
682 | + | |
683 | + ImGui::PopStyleColor(); | |
684 | + PropertyEditor_Page = 0; | |
685 | + Show_PropertyEditor = 0; | |
686 | + } | |
687 | + | |
688 | + if (Is_Teleport == 1) | |
689 | + { | |
690 | + ImGui::SameLine(); | |
691 | + if (ImGui::Button("Goto Location", ImVec2(120, 0))) | |
692 | + { | |
693 | + //App->CLSB_Scene->B_Player[0]->Phys_Body->getWorldTransform().setOrigin(App->CLSB_Scene->V_Object[Eviron_Index]->S_Teleport[0]->Physics_Position); | |
694 | + //App->CLSB_Scene->B_Player[0]->Phys_Body->getWorldTransform().setRotation(App->CLSB_Scene->V_Object[Eviron_Index]->S_Teleport[0]->Physics_Rotation); | |
695 | + //Set_To_PlayerView(); | |
696 | + } | |
697 | + | |
698 | + ImGui::SameLine(); | |
699 | + if (ImGui::Checkbox("Enabled", &App->CLSB_Scene->V_Object[Eviron_Index]->S_Environ[0]->Environ_Enabled)) | |
700 | + { | |
701 | + //App->SBC_Properties->Update_ListView_Teleport(); | |
702 | + } | |
703 | + } | |
704 | + | |
705 | + | |
706 | + ImGui::End(); | |
707 | +} | |
708 | + | |
709 | +// ************************************************************************* | |
710 | +// * Close_Environment_Editor:- Terry and Hazel Flanigan 2022 * | |
711 | +// ************************************************************************* | |
712 | +void SB_Environment::Close_Environment_Editor() | |
713 | +{ | |
714 | + /*App->Disable_Panels(false); | |
715 | + App->Show_Panels(true);*/ | |
716 | + | |
717 | + App->CLSB_FileView->Show_FileView(true); | |
718 | + int Index = App->CLSB_Properties->Current_Selected_Object; | |
719 | + Set_Environment_By_Index(0, Index); | |
720 | + | |
721 | + Index = App->CLSB_Environment->Get_First_Environ(); | |
722 | + Set_Environment_By_Index(0, Index); | |
723 | +} | |
724 | + | |
725 | +// ************************************************************************* | |
726 | +// * Set_To_PlayerView:- Terry and Hazel Flanigan 2022 * | |
727 | +// ************************************************************************* | |
728 | +void SB_Environment::Set_To_PlayerView() | |
729 | +{ | |
730 | + App->CLSB_Ogre->OgreListener->GD_CameraMode = Enums::CamFirst; | |
731 | + //App->CLSB_TopTabs->Toggle_FirstCam_Flag = 1; | |
732 | + //App->CLSB_TopTabs->Toggle_FreeCam_Flag = 0; | |
733 | + | |
734 | + App->CLSB_Scene->B_Player[0]->Player_Node->setVisible(false); | |
735 | + | |
736 | + int f = App->CLSB_Scene->B_Player[0]->Phys_Body->getCollisionFlags(); | |
737 | + App->CLSB_Scene->B_Player[0]->Phys_Body->setCollisionFlags(f | (1 << 5)); | |
738 | + | |
739 | + App->CLSB_Ogre->BulletListener->Render_Debug_Flag = 0; | |
740 | + App->CLSB_Ogre->BulletListener->Render_Debug_Flag = 1; | |
741 | + | |
742 | + App->CLSB_Ogre->OgreListener->GD_Run_Physics = 1; | |
743 | + | |
744 | + //RedrawWindow(App->CLSB_TopTabs->Camera_TB_hWnd, NULL, NULL, RDW_INVALIDATE | RDW_UPDATENOW); | |
745 | +} | |
746 | + | |
747 | +// ************************************************************************* | |
748 | +// * SetSky:- Terry and Hazel Flanigan 2023 * | |
749 | +// ************************************************************************* | |
750 | +void SB_Environment::SetSky(bool Enable) | |
751 | +{ | |
752 | + int Index = App->CLSB_Properties->Current_Selected_Object; | |
753 | + | |
754 | + App->CLSB_Ogre->mSceneMgr->setSkyDome(Enable, | |
755 | + App->CLSB_Scene->V_Object[Index]->S_Environ[0]->Material, | |
756 | + App->CLSB_Scene->V_Object[Index]->S_Environ[0]->Curvature, | |
757 | + App->CLSB_Scene->V_Object[Index]->S_Environ[0]->Tiling, | |
758 | + App->CLSB_Scene->V_Object[Index]->S_Environ[0]->Distance); | |
759 | +} | |
760 | + | |
761 | +// ************************************************************************* | |
762 | +// * EnableFog:- Terry and Hazel Flanigan 2023 * | |
763 | +// ************************************************************************* | |
764 | +bool SB_Environment::EnableFog(bool SetFog) | |
765 | +{ | |
766 | + int Index = App->CLSB_Properties->Current_Selected_Object; | |
767 | + | |
768 | + if (SetFog == true) | |
769 | + { | |
770 | + float Start = App->CLSB_Scene->V_Object[Index]->S_Environ[0]->Fog_Start; | |
771 | + float End = App->CLSB_Scene->V_Object[Index]->S_Environ[0]->Fog_End; | |
772 | + float Density = App->CLSB_Scene->V_Object[Index]->S_Environ[0]->Fog_Density; | |
773 | + | |
774 | + float x = App->CLSB_Scene->V_Object[Index]->S_Environ[0]->Fog_Colour.x; | |
775 | + float y = App->CLSB_Scene->V_Object[Index]->S_Environ[0]->Fog_Colour.y; | |
776 | + float z = App->CLSB_Scene->V_Object[Index]->S_Environ[0]->Fog_Colour.z; | |
777 | + | |
778 | + App->CLSB_Ogre->mSceneMgr->setFog(FOG_LINEAR, ColourValue(x, y, z), Density, (Ogre::Real)Start, (Ogre::Real)End); | |
779 | + } | |
780 | + else | |
781 | + { | |
782 | + App->CLSB_Ogre->mSceneMgr->setFog(FOG_NONE, ColourValue(0.7, 0.7, 0.8), 0, 100, 1000); | |
783 | + } | |
784 | + | |
785 | + return 1; | |
786 | +} | |
787 | + |
@@ -28,5 +28,66 @@ | ||
28 | 28 | public: |
29 | 29 | SB_Environment(void); |
30 | 30 | ~SB_Environment(void); |
31 | + | |
32 | + bool Add_New_Environ_Entity(bool FirstOne); | |
33 | + void V_Set_Environ_Defaults(int Index); | |
34 | + void Set_First_Environment(int Index); | |
35 | + void Mark_As_Altered_Environ(int Index); | |
36 | + int Set_Environment_By_Index(bool PlayMusic, int Index); | |
37 | + int Get_First_Environ(); | |
38 | + | |
39 | + | |
40 | + | |
41 | + void Start_Environment_Editor(int Index, bool IsTeleport); | |
42 | + void Environ_PropertyEditor(); | |
43 | + void Close_Environment_Editor(); | |
44 | + void Set_To_PlayerView(); | |
45 | + void SetSky(bool Enable); | |
46 | + bool EnableFog(bool SetFog); | |
47 | + | |
48 | + bool Show_PropertyEditor; | |
49 | + | |
50 | +protected: | |
51 | + | |
52 | + int PropertyEditor_Page; | |
53 | + | |
54 | + // Ambient | |
55 | + int Ambient_Int_Red; | |
56 | + int Ambient_Int_Green; | |
57 | + int Ambient_Int_Blue; | |
58 | + ImVec4 Ambient_Colour_Copy; | |
59 | + ImVec4 Ambient_Colour; | |
60 | + | |
61 | + // Fog Colour | |
62 | + int Fog_Colour_Int_Red; | |
63 | + int Fog_Colour_Int_Green; | |
64 | + int Fog_Colour_Int_Blue; | |
65 | + ImVec4 Fog_Colour_Copy; | |
66 | + ImVec4 Fog_Colour; | |
67 | + | |
68 | + int Eviron_Index; | |
69 | + | |
70 | + bool Float_Exit; | |
71 | + | |
72 | + bool Is_Teleport; | |
73 | + | |
74 | + float Float_PosX; | |
75 | + float Float_PosY; | |
76 | + bool Float_StartPos; | |
77 | + | |
78 | + bool ClickOnTrack; | |
79 | + bool ClickOnVolume; | |
80 | + bool ClickOnPlay; | |
81 | + bool ClickOnLoop; | |
82 | + | |
83 | + bool ClickOnFogVisible; | |
84 | + bool ClickOnFogMode; | |
85 | + bool ClickOnFogColour; | |
86 | + bool ClickOnFogStart; | |
87 | + bool ClickOnFogEnd; | |
88 | + | |
89 | + bool ClickOnSkyEnabled; | |
90 | + bool ClickOnSkyTiling; | |
91 | + bool ClickOnSkyCurve; | |
31 | 92 | }; |
32 | 93 |
@@ -337,7 +337,13 @@ | ||
337 | 337 | return TRUE; |
338 | 338 | } |
339 | 339 | |
340 | - // File Export | |
340 | + // File Export/Save | |
341 | + if (LOWORD(wParam) == ID_FILE_SAVESCENE) | |
342 | + { | |
343 | + Debug | |
344 | + return TRUE; | |
345 | + } | |
346 | + | |
341 | 347 | if (LOWORD(wParam) == ID_OGRE3D_MESH) |
342 | 348 | { |
343 | 349 | App->CLSB_Exporter->Ogre3D_Model(); |
@@ -1242,12 +1248,10 @@ | ||
1242 | 1248 | ShowWindow(App->ListPanel, true); |
1243 | 1249 | ShowWindow(App->CLSB_Properties->Properties_Dlg_hWnd, true); |
1244 | 1250 | |
1245 | - App->CLSB_Object->Do_Basketball(); | |
1246 | - | |
1247 | - App->CLSB_Ogre->mSceneMgr->setSkyDome(true, "Examples/CloudySky", 5, 8); | |
1248 | - | |
1249 | 1251 | App->CLSB_Equity->Show_Equity_Dialog(true); |
1250 | 1252 | App->CLSB_TopTabs->Update_Dlg_Controls(); |
1253 | + App->CLSB_Equity->Resize_3DView(); | |
1254 | + App->CLSB_Panels->MovePhysicsView(); | |
1251 | 1255 | |
1252 | 1256 | if (App->CLSB_Equity->First_Run == 1) |
1253 | 1257 | { |
@@ -1256,6 +1260,9 @@ | ||
1256 | 1260 | } |
1257 | 1261 | |
1258 | 1262 | App->CLSB_Project->Load_Project(); |
1263 | + | |
1264 | + App->CLSB_Environment->Add_New_Environ_Entity(true); | |
1265 | + App->CLSB_Environment->Set_First_Environment(App->CLSB_Scene->Object_Count - 1); | |
1259 | 1266 | } |
1260 | 1267 | else |
1261 | 1268 | { |
@@ -37,6 +37,8 @@ | ||
37 | 37 | FV_LevelFolder = nullptr; |
38 | 38 | FV_Cameras_Folder = nullptr; |
39 | 39 | FV_Objects_Folder = nullptr; |
40 | + FV_EntitiesFolder = nullptr; | |
41 | + FV_Evirons_Folder = nullptr; | |
40 | 42 | |
41 | 43 | FileView_Folder[0] = 0; |
42 | 44 | FileView_File[0] = 0; |
@@ -68,7 +70,8 @@ | ||
68 | 70 | { |
69 | 71 | //App->SBC_FileView->FileView_Active = 1; |
70 | 72 | SendDlgItemMessage(hDlg, IDC_TREE1, WM_SETFONT, (WPARAM)App->Font_CB15, MAKELPARAM(TRUE, 0)); |
71 | - | |
73 | + SendDlgItemMessage(hDlg, IDC_BT_ENVIRONMENT, WM_SETFONT, (WPARAM)App->Font_CB15, MAKELPARAM(TRUE, 0)); | |
74 | + | |
72 | 75 | //CheckMenuItem(App->mMenu, ID_WINDOWS_FILEVIEW, MF_BYCOMMAND | MF_CHECKED); |
73 | 76 | return TRUE; |
74 | 77 | } |
@@ -106,29 +109,15 @@ | ||
106 | 109 | } |
107 | 110 | } |
108 | 111 | |
109 | - /*LPNMHDR some_item = (LPNMHDR)lParam; | |
112 | + LPNMHDR some_item = (LPNMHDR)lParam; | |
110 | 113 | |
111 | - if (some_item->idFrom == IDC_LEVELS && some_item->code == NM_CUSTOMDRAW) | |
114 | + if (some_item->idFrom == IDC_BT_ENVIRONMENT && some_item->code == NM_CUSTOMDRAW) | |
112 | 115 | { |
113 | 116 | LPNMCUSTOMDRAW item = (LPNMCUSTOMDRAW)some_item; |
114 | - App->Custom_Button_Toggle(item, App->SBC_FileView->Level_But_Active); | |
117 | + App->Custom_Button_Normal(item); | |
115 | 118 | return CDRF_DODEFAULT; |
116 | 119 | } |
117 | 120 | |
118 | - if (some_item->idFrom == IDC_STOCK && some_item->code == NM_CUSTOMDRAW) | |
119 | - { | |
120 | - LPNMCUSTOMDRAW item = (LPNMCUSTOMDRAW)some_item; | |
121 | - App->Custom_Button_Toggle(item, App->SBC_FileView->Stock_But_Active); | |
122 | - return CDRF_DODEFAULT; | |
123 | - } | |
124 | - | |
125 | - if (some_item->idFrom == IDC_BT_INFO_FILEVIEW && some_item->code == NM_CUSTOMDRAW) | |
126 | - { | |
127 | - LPNMCUSTOMDRAW item = (LPNMCUSTOMDRAW)some_item; | |
128 | - App->Custom_Button_Normal(item); | |
129 | - return CDRF_DODEFAULT; | |
130 | - }*/ | |
131 | - | |
132 | 121 | return 1; |
133 | 122 | } |
134 | 123 | case WM_COMMAND: |
@@ -194,6 +183,22 @@ | ||
194 | 183 | // App->Cl_Utilities->OpenHTML("Help\\FileView.html"); |
195 | 184 | // return TRUE; |
196 | 185 | //} |
186 | + | |
187 | + if (LOWORD(wParam) == IDC_BT_ENVIRONMENT) | |
188 | + { | |
189 | + int Index = App->CLSB_Environment->Get_First_Environ(); | |
190 | + if (Index == -1) | |
191 | + { | |
192 | + App->Say("Cant Find First Environment"); | |
193 | + return TRUE; | |
194 | + } | |
195 | + | |
196 | + App->CLSB_Properties->Current_Selected_Object = Index; | |
197 | + App->CLSB_Environment->Start_Environment_Editor(Index, 0); | |
198 | + return TRUE; | |
199 | + } | |
200 | + | |
201 | + | |
197 | 202 | break; |
198 | 203 | } |
199 | 204 |
@@ -344,6 +349,22 @@ | ||
344 | 349 | tvinsert.item.iSelectedImage = 1; |
345 | 350 | FV_Objects_Folder = (HTREEITEM)SendDlgItemMessage(App->ListPanel, IDC_TREE1, TVM_INSERTITEM, 0, (LPARAM)&tvinsert); |
346 | 351 | |
352 | + tvinsert.hParent = FV_LevelFolder; | |
353 | + tvinsert.hInsertAfter = TVI_LAST; | |
354 | + tvinsert.item.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE; | |
355 | + tvinsert.item.pszText = "Entities"; | |
356 | + tvinsert.item.iImage = 0; | |
357 | + tvinsert.item.iSelectedImage = 1; | |
358 | + FV_EntitiesFolder = (HTREEITEM)SendDlgItemMessage(App->ListPanel, IDC_TREE1, TVM_INSERTITEM, 0, (LPARAM)&tvinsert); | |
359 | + | |
360 | + //--------------------------------------- Evironments Eviron_Entity | |
361 | + tvinsert.hParent = FV_EntitiesFolder; | |
362 | + tvinsert.hInsertAfter = TVI_LAST; | |
363 | + tvinsert.item.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE; | |
364 | + tvinsert.item.pszText = "Evironments"; | |
365 | + tvinsert.item.iImage = 0; | |
366 | + tvinsert.item.iSelectedImage = 1; | |
367 | + FV_Evirons_Folder = (HTREEITEM)SendDlgItemMessage(App->ListPanel, IDC_TREE1, TVM_INSERTITEM, 0, (LPARAM)&tvinsert); | |
347 | 368 | } |
348 | 369 | |
349 | 370 | // ************************************************************************* |
@@ -589,5 +610,34 @@ | ||
589 | 610 | //TreeView_Select(Temp, NULL, TVGN_CARET); |
590 | 611 | TreeView_Select(Temp, TreeItem, TVGN_CARET); |
591 | 612 | } |
613 | +} | |
592 | 614 | |
615 | +// ************************************************************************* | |
616 | +// * Mark_Altered:- Terry and Hazel Flanigan 2022 * | |
617 | +// ************************************************************************* | |
618 | +void SB_FileView::Mark_Altered(HTREEITEM Item) | |
619 | +{ | |
620 | + TVITEM Sitem; | |
621 | + Sitem.mask = TVIF_IMAGE | TVIF_SELECTEDIMAGE; | |
622 | + Sitem.hItem = Item; | |
623 | + Sitem.iImage = 6; | |
624 | + Sitem.iSelectedImage = 7; | |
625 | + SendDlgItemMessage(App->ListPanel, IDC_TREE1, TVM_SETITEM, 0, (LPARAM)(const LPTVITEM)&Sitem); | |
626 | + | |
627 | + //EnableMenuItem(App->mMenu, ID_FILE_SAVEPROJECTALL, MF_ENABLED); | |
593 | 628 | } |
629 | + | |
630 | +// ************************************************************************** | |
631 | +// * Show_FileView:- Terry and Hazel Flanigan 2022 * | |
632 | +// ************************************************************************** | |
633 | +void SB_FileView::Show_FileView(bool show) | |
634 | +{ | |
635 | + if (show == 1) | |
636 | + { | |
637 | + ShowWindow(App->ListPanel, SW_SHOW); | |
638 | + } | |
639 | + else | |
640 | + { | |
641 | + ShowWindow(App->ListPanel, SW_HIDE); | |
642 | + } | |
643 | +} |
@@ -35,9 +35,13 @@ | ||
35 | 35 | void Set_FolderActive(HTREEITEM Folder); |
36 | 36 | void SelectItem(HTREEITEM TreeItem); |
37 | 37 | void ExpandRoot(void); |
38 | + void Mark_Altered(HTREEITEM Item); | |
39 | + void Show_FileView(bool show); | |
38 | 40 | |
39 | 41 | HTREEITEM FV_Players_Folder; // Players Folder FileFView |
40 | 42 | HTREEITEM FV_Objects_Folder; |
43 | + HTREEITEM FV_EntitiesFolder; | |
44 | + HTREEITEM FV_Evirons_Folder; | |
41 | 45 | |
42 | 46 | private: |
43 | 47 |
@@ -133,6 +133,11 @@ | ||
133 | 133 | { |
134 | 134 | Dialog_Float(); |
135 | 135 | } |
136 | + | |
137 | + if (App->CLSB_Environment->Show_PropertyEditor == 1) | |
138 | + { | |
139 | + App->CLSB_Environment->Environ_PropertyEditor(); | |
140 | + } | |
136 | 141 | } |
137 | 142 | |
138 | 143 | // ************************************************************************* |
@@ -27,7 +27,7 @@ | ||
27 | 27 | |
28 | 28 | SB_Object::SB_Object() |
29 | 29 | { |
30 | - BasketBall_Done = 0; | |
30 | + | |
31 | 31 | } |
32 | 32 | |
33 | 33 | SB_Object::~SB_Object() |
@@ -35,78 +35,6 @@ | ||
35 | 35 | } |
36 | 36 | |
37 | 37 | // ************************************************************************* |
38 | -// * Do_Basketball (Terry Bernie) * | |
39 | -// ************************************************************************* | |
40 | -void SB_Object::Do_Basketball() | |
41 | -{ | |
42 | - BasketBall_Done = 1; | |
43 | - return; | |
44 | - if (BasketBall_Done == 0) | |
45 | - { | |
46 | - | |
47 | - App->CLSB_Scene->V_Object.push_back(new Base_Object()); | |
48 | - App->CLSB_Scene->Object_Count = 1; | |
49 | - | |
50 | - Base_Object* m_Object = App->CLSB_Scene->V_Object[0]; | |
51 | - | |
52 | - m_Object->Object_Ent = App->CLSB_Ogre->mSceneMgr->createEntity("Ball", "basketball.mesh", App->CLSB_Ogre->App_Resource_Group); | |
53 | - m_Object->Object_Node = App->CLSB_Ogre->mSceneMgr->getRootSceneNode()->createChildSceneNode(); | |
54 | - m_Object->Object_Node->attachObject(m_Object->Object_Ent); | |
55 | - | |
56 | - m_Object->Object_Node->setVisible(true); | |
57 | - | |
58 | - m_Object->Object_Node->setPosition(0, -10, -50); | |
59 | - m_Object->Object_Node->scale(2, 2, 2); | |
60 | - | |
61 | - AxisAlignedBox worldAAB = m_Object->Object_Ent->getBoundingBox(); | |
62 | - worldAAB.transformAffine(m_Object->Object_Node->_getFullTransform()); | |
63 | - Ogre::Vector3 Centre = worldAAB.getCenter(); | |
64 | - | |
65 | - btTransform startTransform; | |
66 | - startTransform.setIdentity(); | |
67 | - startTransform.setRotation(btQuaternion(0.0f, 0.0f, 0.0f, 1)); | |
68 | - | |
69 | - btScalar mass; | |
70 | - mass = 1.0f; | |
71 | - | |
72 | - btVector3 localInertia(0, 0, 0); | |
73 | - btVector3 initialPosition(Centre.x, Centre.y, Centre.z); | |
74 | - | |
75 | - startTransform.setOrigin(initialPosition); | |
76 | - | |
77 | - float Radius = 16;// App->CL_Object->GetMesh_BB_Radius(Object_Node); | |
78 | - | |
79 | - | |
80 | - btCollisionShape* newRigidShape = new btSphereShape(Radius); | |
81 | - newRigidShape->calculateLocalInertia(mass, localInertia); | |
82 | - | |
83 | - App->CLSB_Bullet->collisionShapes.push_back(newRigidShape); | |
84 | - | |
85 | - btDefaultMotionState* myMotionState = new btDefaultMotionState(startTransform); | |
86 | - | |
87 | - btRigidBody::btRigidBodyConstructionInfo rbInfo(mass, myMotionState, newRigidShape, localInertia); | |
88 | - | |
89 | - m_Object->Phys_Body = new btRigidBody(rbInfo); | |
90 | - m_Object->Phys_Body->setRestitution(1.0); | |
91 | - m_Object->Phys_Body->setFriction(2.5); | |
92 | - m_Object->Phys_Body->setUserPointer(m_Object->Object_Node); | |
93 | - m_Object->Phys_Body->setWorldTransform(startTransform); | |
94 | - | |
95 | - int f = m_Object->Phys_Body->getCollisionFlags(); | |
96 | - m_Object->Phys_Body->setCollisionFlags(f | btCollisionObject::CF_DISABLE_VISUALIZE_OBJECT); | |
97 | - | |
98 | - m_Object->Usage = Enums::Usage_Dynamic; | |
99 | - m_Object->Phys_Body->setUserIndex(Enums::Usage_Dynamic); | |
100 | - m_Object->Phys_Body->setUserIndex2(0); | |
101 | - | |
102 | - App->CLSB_Bullet->dynamicsWorld->addRigidBody(m_Object->Phys_Body); | |
103 | - | |
104 | - BasketBall_Done = 1; | |
105 | - } | |
106 | - | |
107 | -} | |
108 | - | |
109 | -// ************************************************************************* | |
110 | 38 | // Get_BoundingBox_World_Centre:- Terry and Hazel Flanigan 2023 * |
111 | 39 | // ************************************************************************* |
112 | 40 | Ogre::Vector3 SB_Object::Get_BoundingBox_World_Centre(int Object_Index) |
@@ -29,11 +29,7 @@ | ||
29 | 29 | SB_Object(); |
30 | 30 | ~SB_Object(); |
31 | 31 | |
32 | - void Do_Basketball(); | |
33 | - | |
34 | 32 | Ogre::Vector3 Get_BoundingBox_World_Centre(int Object_Index); |
35 | 33 | float GetMesh_BB_Radius(SceneNode* mNode); |
36 | - | |
37 | - bool BasketBall_Done; | |
38 | 34 | }; |
39 | 35 |
@@ -0,0 +1,425 @@ | ||
1 | +/* | |
2 | +Copyright (c) Vima19 Inflanite Software W.T.Flanigan H.C.Flanigan | |
3 | + | |
4 | +This software is provided 'as-is', without any express or implied | |
5 | +warranty. In no event will the authors be held liable for any damages | |
6 | +arising from the use of this software. | |
7 | + | |
8 | +Permission is granted to anyone to use this software for any purpose, | |
9 | +including commercial applications, and to alter it and redistribute it | |
10 | +freely, subject to the following restrictions: | |
11 | + | |
12 | +1. The origin of this software must not be misrepresented; you must not | |
13 | +claim that you wrote the original software. If you use this software | |
14 | +in a product, an acknowledgment in the product documentation would be | |
15 | +appreciated but is not required. | |
16 | + | |
17 | +2. Altered source versions must be plainly marked as such, and must not be | |
18 | +misrepresented as being the original software. | |
19 | + | |
20 | +3. This notice may not be removed or altered from any source | |
21 | +distribution. | |
22 | +*/ | |
23 | + | |
24 | +#include "StdAfx.h" | |
25 | +#include "resource.h" | |
26 | +#include "AB_App.h" | |
27 | +#include "SB_SoundMgr.h" | |
28 | + | |
29 | + | |
30 | +SB_SoundMgr::SB_SoundMgr(void) | |
31 | +{ | |
32 | + SoundEngine = irrklang::createIrrKlangDevice(); | |
33 | + SndFile = nullptr; | |
34 | + SndVolume=0.5; | |
35 | + IsObject = 0; | |
36 | + strcpy(mSoundFile,""); | |
37 | + strcpy(Default_Folder,App->WorldEditor_Directory); | |
38 | + | |
39 | + SoundFile_Count = 0; | |
40 | + Current_Object_Sound[0] = 0; | |
41 | + | |
42 | + m_Current_Sound_file[0] = 0; | |
43 | + | |
44 | + IsCancelled = 0; | |
45 | + Accessed = 0; | |
46 | +} | |
47 | + | |
48 | + | |
49 | +SB_SoundMgr::~SB_SoundMgr(void) | |
50 | +{ | |
51 | +} | |
52 | + | |
53 | +//// ************************************************************************* | |
54 | +//// * Dialog_SoundFile() Terry Bernie * | |
55 | +//// ************************************************************************* | |
56 | +//bool SB_SoundMgr::Dialog_SoundFile() | |
57 | +//{ | |
58 | +// IsCancelled = 0; | |
59 | +// SndFile = nullptr; | |
60 | +// | |
61 | +// DialogBox(App->hInst,(LPCTSTR)IDD_GD_SOUNDPLAYER,App->Fdlg,(DLGPROC)Dialog_SoundFile_Proc); | |
62 | +// return 1; | |
63 | +//} | |
64 | +//// ************************************************************************* | |
65 | +//// * Dialog_SoundFile_Proc Terry Bernie * | |
66 | +//// ************************************************************************* | |
67 | +//LRESULT CALLBACK SB_SoundMgr::Dialog_SoundFile_Proc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) | |
68 | +//{ | |
69 | +// | |
70 | +// switch (message) | |
71 | +// { | |
72 | +// case WM_INITDIALOG: | |
73 | +// { | |
74 | +// App->SetTitleBar(hDlg); | |
75 | +// | |
76 | +// HFONT Font; | |
77 | +// Font = CreateFont( -15,0,0,0,FW_BOLD,0,0,0,0,OUT_TT_ONLY_PRECIS ,0,0,0, "Aerial Black"); | |
78 | +// SendDlgItemMessage(hDlg,IDC_TITLENAME, WM_SETFONT, (WPARAM)App->Font_Arial20, MAKELPARAM(TRUE, 0)); | |
79 | +// SendDlgItemMessage(hDlg,IDC_SOUNDLIST, WM_SETFONT, (WPARAM)App->Font_CB15, MAKELPARAM(TRUE, 0)); | |
80 | +// SendDlgItemMessage(hDlg,IDC_EDITINT, WM_SETFONT, (WPARAM)App->Font_CB15, MAKELPARAM(TRUE, 0)); | |
81 | +// | |
82 | +// SetDlgItemText(hDlg,IDC_TITLENAME,(LPCTSTR)"Sound Player"); | |
83 | +// | |
84 | +// | |
85 | +// App->SBC_SoundMgr->GetSoundFiles(hDlg,"*.ogg"); | |
86 | +// App->SBC_SoundMgr->GetSoundFiles(hDlg,"*.wav"); | |
87 | +// | |
88 | +// char Sound[MAX_PATH]; | |
89 | +// HWND ListHwnd = GetDlgItem(hDlg, IDC_SOUNDLIST); | |
90 | +// | |
91 | +// SendMessage(ListHwnd, LB_SETCURSEL, 0, (LPARAM)(LPCTSTR)0); | |
92 | +// SendDlgItemMessage(hDlg, IDC_SOUNDLIST, LB_GETTEXT, (WPARAM) 0, (LPARAM)Sound); | |
93 | +// SetDlgItemText(hDlg, IDC_EDITINT, (LPTSTR)Sound); | |
94 | +// | |
95 | +// //int Sel = SendMessage(GetDlgItem(hDlg, IDC_SOUNDLIST), LB_SELECTSTRING, -1, (LPARAM)App->SBC_SoundMgr->Current_Object_Sound); | |
96 | +// | |
97 | +// //char buff[255]; | |
98 | +// //SendDlgItemMessage(hDlg, IDC_SOUNDLIST, LB_GETTEXT, (WPARAM)Sel, (LPARAM)buff); | |
99 | +// //SetDlgItemText(hDlg, IDC_EDITINT, (LPTSTR)buff); | |
100 | +// | |
101 | +// int VolPer = int(App->SBC_SoundMgr->SndVolume*10); | |
102 | +// | |
103 | +// HWND Slider =GetDlgItem(hDlg,IDC_SLVOLUME); | |
104 | +// SendMessage(Slider, TBM_SETRANGE, (WPARAM) TRUE,(LPARAM) MAKELONG(0,10)); | |
105 | +// SendMessage(Slider, TBM_SETPOS, (WPARAM) 1,(LPARAM)VolPer); | |
106 | +// | |
107 | +// VolPer = VolPer*10; | |
108 | +// | |
109 | +// char buf[10]; | |
110 | +// sprintf(buf,"%i",VolPer); | |
111 | +// SetDlgItemText(hDlg,IDC_VOLBOX,(LPCTSTR)buf); | |
112 | +// | |
113 | +// if (App->SBC_SoundMgr->Accessed == 1) | |
114 | +// { | |
115 | +// SendMessage(GetDlgItem(hDlg, IDC_SOUNDLIST), LB_SELECTSTRING, -1, (LPARAM)App->SBC_SoundMgr->Access_File); | |
116 | +// } | |
117 | +// | |
118 | +// return TRUE; | |
119 | +// } | |
120 | +// case WM_CTLCOLORSTATIC: | |
121 | +// { | |
122 | +// /*if(GetDlgItem(hDlg,IDC_STPER) == (HWND)lParam) | |
123 | +// { | |
124 | +// SetBkColor((HDC) wParam, RGB(0, 255, 0)); | |
125 | +// SetTextColor((HDC) wParam, RGB(0,0,0)); | |
126 | +// SetBkMode((HDC) wParam, TRANSPARENT); | |
127 | +// return (UINT) App->AppBackground; | |
128 | +// }*/ | |
129 | +// if(GetDlgItem(hDlg,IDC_STVOLUME) == (HWND)lParam) | |
130 | +// { | |
131 | +// SetBkColor((HDC) wParam, RGB(0, 255, 0)); | |
132 | +// SetTextColor((HDC) wParam, RGB(0,0,0)); | |
133 | +// SetBkMode((HDC) wParam, TRANSPARENT); | |
134 | +// return (UINT) App->DialogBackGround; | |
135 | +// } | |
136 | +// if(GetDlgItem(hDlg,IDC_VOLBOX) == (HWND)lParam) | |
137 | +// { | |
138 | +// SetBkColor((HDC) wParam, RGB(0, 255, 0)); | |
139 | +// SetTextColor((HDC) wParam, RGB(0,0,0)); | |
140 | +// SetBkMode((HDC) wParam, TRANSPARENT); | |
141 | +// return (UINT) App->Brush_White; | |
142 | +// } | |
143 | +// if(GetDlgItem(hDlg,IDC_EDITINT) == (HWND)lParam) | |
144 | +// { | |
145 | +// SetBkColor((HDC) wParam, RGB(0, 255, 0)); | |
146 | +// SetTextColor((HDC) wParam, RGB(0,0,0)); | |
147 | +// SetBkMode((HDC) wParam, TRANSPARENT); | |
148 | +// return (UINT) App->Brush_White; | |
149 | +// } | |
150 | +// if(GetDlgItem(hDlg,IDC_SLVOLUME) == (HWND)lParam) | |
151 | +// { | |
152 | +// SetBkColor((HDC) wParam, RGB(0, 255, 0)); | |
153 | +// SetTextColor((HDC) wParam, RGB(0,0,255)); | |
154 | +// SetBkMode((HDC) wParam, TRANSPARENT); | |
155 | +// return (UINT) App->DialogBackGround; | |
156 | +// } | |
157 | +// if(GetDlgItem(hDlg,IDC_TITLENAME) == (HWND)lParam) | |
158 | +// { | |
159 | +// SetBkColor((HDC) wParam, RGB(0, 255, 0)); | |
160 | +// SetTextColor((HDC) wParam, RGB(0,0,0)); | |
161 | +// SetBkMode((HDC) wParam, TRANSPARENT); | |
162 | +// return (UINT) App->DialogBackGround; | |
163 | +// } | |
164 | +// return FALSE; | |
165 | +// } | |
166 | +// | |
167 | +// case WM_CTLCOLORDLG: | |
168 | +// { | |
169 | +// return (LONG)App->DialogBackGround; | |
170 | +// } | |
171 | +// case WM_HSCROLL : | |
172 | +// { | |
173 | +// HWND Slider = GetDlgItem(hDlg,IDC_SLVOLUME); | |
174 | +// int pos = 0; | |
175 | +// int Percent = 0; | |
176 | +// char buf[20]; | |
177 | +// pos = SendMessage(Slider, TBM_GETPOS, (WPARAM) 0,(LPARAM)0); | |
178 | +// Percent = pos*10; | |
179 | +// sprintf(buf,"%i",Percent); | |
180 | +// SetDlgItemText(hDlg,IDC_VOLBOX,(LPCTSTR)buf); | |
181 | +// | |
182 | +// float sum2 = float(Percent) / 100; | |
183 | +// App->SBC_SoundMgr->SndVolume = sum2; | |
184 | +// | |
185 | +// if (App->SBC_SoundMgr->SndFile) | |
186 | +// { | |
187 | +// App->SBC_SoundMgr->SndFile->setVolume(sum2); | |
188 | +// } | |
189 | +// | |
190 | +// return 1; | |
191 | +// } | |
192 | +// | |
193 | +// case WM_NOTIFY: | |
194 | +// { | |
195 | +// LPNMHDR nmhdr = (LPNMHDR) lParam; | |
196 | +// | |
197 | +// if (nmhdr->idFrom == IDC_PLAY && nmhdr->code == NM_CUSTOMDRAW) | |
198 | +// { | |
199 | +// LPNMCUSTOMDRAW item = (LPNMCUSTOMDRAW)nmhdr; | |
200 | +// App->Custom_Button_Normal(item); | |
201 | +// return CDRF_DODEFAULT; | |
202 | +// } | |
203 | +// | |
204 | +// if (nmhdr->idFrom == IDOK && nmhdr->code == NM_CUSTOMDRAW) | |
205 | +// { | |
206 | +// LPNMCUSTOMDRAW item = (LPNMCUSTOMDRAW)nmhdr; | |
207 | +// App->Custom_Button_Normal(item); | |
208 | +// return CDRF_DODEFAULT; | |
209 | +// } | |
210 | +// | |
211 | +// if (nmhdr->idFrom == IDCANCEL && nmhdr->code == NM_CUSTOMDRAW) | |
212 | +// { | |
213 | +// LPNMCUSTOMDRAW item = (LPNMCUSTOMDRAW)nmhdr; | |
214 | +// App->Custom_Button_Normal(item); | |
215 | +// return CDRF_DODEFAULT; | |
216 | +// } | |
217 | +// | |
218 | +// }break; | |
219 | +// | |
220 | +// case WM_COMMAND: | |
221 | +// | |
222 | +// | |
223 | +// if (LOWORD(wParam) == IDC_BT_STOP) | |
224 | +// { | |
225 | +// App->SBC_SoundMgr->SndFile->stop(); | |
226 | +// | |
227 | +// return TRUE; | |
228 | +// } | |
229 | +// | |
230 | +// if (LOWORD(wParam) == IDC_BT_PAUSE) | |
231 | +// { | |
232 | +// bool Paused = App->SBC_SoundMgr->SndFile->getIsPaused(); | |
233 | +// if (Paused == 1) | |
234 | +// { | |
235 | +// App->SBC_SoundMgr->SndFile->setIsPaused(0); | |
236 | +// } | |
237 | +// else | |
238 | +// { | |
239 | +// App->SBC_SoundMgr->SndFile->setIsPaused(1); | |
240 | +// } | |
241 | +// | |
242 | +// return TRUE; | |
243 | +// } | |
244 | +// | |
245 | +// if (LOWORD(wParam) == IDC_SOUNDLIST) | |
246 | +// { | |
247 | +// char buff[256]; | |
248 | +// int Index=0; | |
249 | +// Index = SendDlgItemMessage(hDlg,IDC_SOUNDLIST,LB_GETCURSEL, (WPARAM)0, (LPARAM)0); | |
250 | +// | |
251 | +// if (Index==-1) | |
252 | +// { | |
253 | +// return 1; | |
254 | +// } | |
255 | +// | |
256 | +// SendDlgItemMessage(hDlg,IDC_SOUNDLIST,LB_GETTEXT, (WPARAM)Index, (LPARAM)buff); | |
257 | +// | |
258 | +// SetDlgItemText(hDlg,IDC_EDITINT,(LPTSTR)buff); | |
259 | +// | |
260 | +// if (App->SBC_SoundMgr->Accessed == 1) | |
261 | +// { | |
262 | +// strcpy(App->SBC_SoundMgr->Access_File, buff); | |
263 | +// } | |
264 | +// | |
265 | +// return TRUE; | |
266 | +// } | |
267 | +// | |
268 | +// if (LOWORD(wParam) == IDOK) | |
269 | +// { | |
270 | +// if (App->SBC_SoundMgr->SndFile==NULL) | |
271 | +// { | |
272 | +// } | |
273 | +// else | |
274 | +// { | |
275 | +// App->SBC_SoundMgr->SndFile->stop(); | |
276 | +// App->SBC_SoundMgr->SndFile=NULL; | |
277 | +// } | |
278 | +// | |
279 | +// App->SBC_SoundMgr->IsCancelled = 0; | |
280 | +// | |
281 | +// char file[256]; | |
282 | +// GetDlgItemText(hDlg,IDC_EDITINT,(LPTSTR)file,256); | |
283 | +// strcpy(App->SBC_SoundMgr->mSoundFile,file); | |
284 | +// App->SBC_SoundMgr->Remeber_SoundFile(file); | |
285 | +// | |
286 | +// App->SBC_SoundMgr->Accessed = 0; | |
287 | +// EndDialog(hDlg, LOWORD(wParam)); | |
288 | +// return TRUE; | |
289 | +// } | |
290 | +// | |
291 | +// if (LOWORD(wParam)== IDCANCEL) | |
292 | +// { | |
293 | +// if (App->SBC_SoundMgr->SndFile == NULL) | |
294 | +// { | |
295 | +// } | |
296 | +// else | |
297 | +// { | |
298 | +// App->SBC_SoundMgr->SndFile->stop(); | |
299 | +// App->SBC_SoundMgr->SndFile->drop(); | |
300 | +// App->SBC_SoundMgr->SndFile = NULL; | |
301 | +// | |
302 | +// } | |
303 | +// | |
304 | +// App->SBC_SoundMgr->Accessed = 0; | |
305 | +// App->SBC_SoundMgr->IsCancelled = 1; | |
306 | +// EndDialog(hDlg, LOWORD(wParam)); | |
307 | +// return TRUE; | |
308 | +// } | |
309 | +// | |
310 | +// if (LOWORD(wParam)== IDC_PLAY) | |
311 | +// { | |
312 | +// | |
313 | +// GetDlgItemText(hDlg,IDC_EDITINT,(LPTSTR)App->SBC_SoundMgr->m_Current_Sound_file,MAX_PATH); | |
314 | +// | |
315 | +// if (App->SBC_SoundMgr->SndFile==NULL) | |
316 | +// { | |
317 | +// } | |
318 | +// else | |
319 | +// { | |
320 | +// App->SBC_SoundMgr->SndFile->stop(); | |
321 | +// App->SBC_SoundMgr->SndFile=NULL; | |
322 | +// } | |
323 | +// | |
324 | +// int result=1; | |
325 | +// result = strcmp(App->SBC_SoundMgr->m_Current_Sound_file,""); | |
326 | +// if (result == 0) | |
327 | +// { | |
328 | +// | |
329 | +// } | |
330 | +// else | |
331 | +// { | |
332 | +// result = strcmp(App->SBC_SoundMgr->m_Current_Sound_file,"None"); | |
333 | +// if (result == 0) | |
334 | +// { | |
335 | +// | |
336 | +// } | |
337 | +// else | |
338 | +// { | |
339 | +// char Sound[1024]; | |
340 | +// strcpy(Sound,App->SBC_SoundMgr->Default_Folder); | |
341 | +// strcat(Sound,"\\Media\\Sounds\\"); | |
342 | +// strcat(Sound, App->SBC_SoundMgr->m_Current_Sound_file); | |
343 | +// | |
344 | +// App->SBC_SoundMgr->SndFile = App->SBC_SoundMgr->SoundEngine->play2D(Sound,false,true,true); | |
345 | +// App->SBC_SoundMgr->SndFile->setVolume(App->SBC_SoundMgr->SndVolume); | |
346 | +// App->SBC_SoundMgr->SndFile->setIsPaused(false); | |
347 | +// } | |
348 | +// } | |
349 | +// return TRUE; | |
350 | +// } | |
351 | +// | |
352 | +// break; | |
353 | +// | |
354 | +// } | |
355 | +// return FALSE; | |
356 | +//} | |
357 | +// | |
358 | +// ************************************************************************* | |
359 | +// * InitSound_Defaults Terry Bernie * | |
360 | +// ************************************************************************* | |
361 | +bool SB_SoundMgr::InitSound_Defaults(int Index) | |
362 | +{ | |
363 | + //S_Object[Index]->Sound[0].Data0 = 0; | |
364 | + //S_Object[Index]->Sound[0].Data1 = 0; | |
365 | + //S_Object[Index]->Sound[0].Is3D = 0; | |
366 | + //S_Object[Index]->Sound[0].Loop = 0; | |
367 | + //S_Object[Index]->Sound[0].Pan = 0; | |
368 | + //S_Object[Index]->Sound[0].Play = 1; | |
369 | + //strcpy(S_Object[Index]->Sound[0].SoundFile,"None"); // Needs Lookind at | |
370 | + //S_Object[Index]->Sound[0].Volume = 1; | |
371 | + return 1; | |
372 | +} | |
373 | +// ************************************************************************* | |
374 | +// * GetSoundFiles Terry Bernie * | |
375 | +// ************************************************************************* | |
376 | +bool SB_SoundMgr::GetSoundFiles(HWND hDlg,char *Extention) | |
377 | +{ | |
378 | + /*HWND ListHwnd = GetDlgItem(hDlg,IDC_SOUNDLIST); | |
379 | + | |
380 | + WIN32_FIND_DATA ffd; | |
381 | + HANDLE hFind = INVALID_HANDLE_VALUE; | |
382 | + | |
383 | + char SearchName[1024]; | |
384 | + strcpy(SearchName,Default_Folder); | |
385 | + strcat(SearchName,"\\Media\\Sounds\\"); | |
386 | + strcat(SearchName,Extention); | |
387 | + | |
388 | + hFind = FindFirstFile(SearchName,&ffd); | |
389 | + | |
390 | + SendMessage(ListHwnd,LB_ADDSTRING, 0, (LPARAM) (LPCTSTR)ffd.cFileName); | |
391 | + | |
392 | + while (FindNextFile(hFind, &ffd) != 0) | |
393 | + { | |
394 | + SendMessage(ListHwnd,LB_ADDSTRING, 0, (LPARAM) (LPCTSTR)ffd.cFileName); | |
395 | + }*/ | |
396 | + | |
397 | + return 1; | |
398 | +} | |
399 | + | |
400 | +// ************************************************************************* | |
401 | +// * Remeber_SoundFile Terry Bernie * | |
402 | +// ************************************************************************* | |
403 | +bool SB_SoundMgr::Remeber_SoundFile(char* File) | |
404 | +{ | |
405 | + Sound_File.push_back(File); | |
406 | + SoundFile_Count = Sound_File.size(); | |
407 | + return 1; | |
408 | +} | |
409 | + | |
410 | +// ************************************************************************* | |
411 | +// * Play_StartUp_Sound Terry Bernie * | |
412 | +// ************************************************************************* | |
413 | +bool SB_SoundMgr::Play_StartUp_Sound() | |
414 | +{ | |
415 | + char Sound[MAX_PATH]; | |
416 | + strcpy(Sound, App->WorldEditor_Directory); | |
417 | + strcat(Sound, "\\Media\\Sounds\\"); | |
418 | + strcat(Sound, "welcome.ogg"); | |
419 | + | |
420 | + SndFile = App->CLSB_SoundMgr->SoundEngine->play2D(Sound, false, true, true); | |
421 | + SndFile->setVolume(0.5); | |
422 | + SndFile->setIsPaused(false); | |
423 | + | |
424 | + return 1; | |
425 | +} |
@@ -0,0 +1,64 @@ | ||
1 | +/* | |
2 | +Copyright (c) Vima19 Inflanite Software W.T.Flanigan H.C.Flanigan | |
3 | + | |
4 | +This software is provided 'as-is', without any express or implied | |
5 | +warranty. In no event will the authors be held liable for any damages | |
6 | +arising from the use of this software. | |
7 | + | |
8 | +Permission is granted to anyone to use this software for any purpose, | |
9 | +including commercial applications, and to alter it and redistribute it | |
10 | +freely, subject to the following restrictions: | |
11 | + | |
12 | +1. The origin of this software must not be misrepresented; you must not | |
13 | +claim that you wrote the original software. If you use this software | |
14 | +in a product, an acknowledgment in the product documentation would be | |
15 | +appreciated but is not required. | |
16 | + | |
17 | +2. Altered source versions must be plainly marked as such, and must not be | |
18 | +misrepresented as being the original software. | |
19 | + | |
20 | +3. This notice may not be removed or altered from any source | |
21 | +distribution. | |
22 | +*/ | |
23 | + | |
24 | +#pragma once | |
25 | + | |
26 | +class SB_SoundMgr | |
27 | +{ | |
28 | +public: | |
29 | + SB_SoundMgr(void); | |
30 | + ~SB_SoundMgr(void); | |
31 | + | |
32 | + //static LRESULT CALLBACK Dialog_SoundFile_Proc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); | |
33 | + | |
34 | + //bool Dialog_SoundFile(); | |
35 | + bool InitSound_Defaults(int Index); | |
36 | + bool GetSoundFiles(HWND hDlg,char *Extention); | |
37 | + bool Remeber_SoundFile(char* File); | |
38 | + bool Play_StartUp_Sound(); | |
39 | + | |
40 | + char mSoundFile[255]; | |
41 | + char Current_Object_Sound[255]; | |
42 | + | |
43 | + char m_Current_Sound_file[MAX_PATH]; | |
44 | + | |
45 | + char Default_Folder[1024]; | |
46 | + | |
47 | + bool IsObject; | |
48 | + bool IsCancelled; | |
49 | + | |
50 | + bool Accessed; | |
51 | + char Access_File[MAX_PATH]; | |
52 | + | |
53 | + irrklang::ISoundEngine* SoundEngine; | |
54 | + irrklang::ISound* SndFile; | |
55 | + Ogre::Real SndVolume; | |
56 | + | |
57 | + int SoundFile_Count; | |
58 | + std::vector<std::string> Sound_File; | |
59 | + | |
60 | +protected: | |
61 | + | |
62 | + | |
63 | +}; | |
64 | + |
@@ -68,6 +68,7 @@ | ||
68 | 68 | #include "OgreHardwareVertexBuffer.h" |
69 | 69 | #include "OgreVertexIndexData.h" |
70 | 70 | #include "OgreResourceGroupManager.h" |
71 | +#include "irrKlang.h" | |
71 | 72 | |
72 | 73 | #include <gl/gl.h> |
73 | 74 | #include <gl/glu.h> |
@@ -186,6 +187,6 @@ | ||
186 | 187 | // re-enable warnings except 4514 |
187 | 188 | #pragma warning(default : 4201 4214 4115) |
188 | 189 | |
189 | -#define Debug MessageBox(NULL, "Here", "Message", MB_OK); | |
190 | +#define Debug App->Say("Here", "Message"); //MessageBox(NULL, "Here", "Message", MB_OK); | |
190 | 191 | |
191 | 192 | #endif |
@@ -171,6 +171,7 @@ | ||
171 | 171 | #define IDB_FILESELECTED 343 |
172 | 172 | #define IDB_BITMAP2 344 |
173 | 173 | #define IDB_FVFOLDERRED 344 |
174 | +#define IDD_SB_TRUEFALSE 345 | |
174 | 175 | #define IDC_RESET_ALL 1000 |
175 | 176 | #define IDC_EDIT1 1001 |
176 | 177 | #define IDC_EDIT10 1002 |
@@ -241,6 +242,7 @@ | ||
241 | 242 | #define IDC_BRUSHLIST 1067 |
242 | 243 | #define IDC_SKYRIGHT 1067 |
243 | 244 | #define IDC_VISDETAIL 1067 |
245 | +#define IDC_CHECKNO 1067 | |
244 | 246 | #define IDC_NAME 1068 |
245 | 247 | #define IDC_CHECK3 1068 |
246 | 248 | #define IDC_SKYTOP 1068 |
@@ -839,6 +841,9 @@ | ||
839 | 841 | #define IDC_BTFACENEXT 1536 |
840 | 842 | #define IDC_TREE1 1537 |
841 | 843 | #define IDC_BT_VIEWUPDATE 1538 |
844 | +#define IDC_BT_ENVIRONMENT 1539 | |
845 | +#define IDC_TITLENAME 1540 | |
846 | +#define IDC_CHECKYES 1541 | |
842 | 847 | #define ID_BRUSH_PRIMITIVES_CUBE 32771 |
843 | 848 | #define ID_BRUSH_PRIMITIVES_PYRAMID 32772 |
844 | 849 | #define ID_BRUSH_PRIMITIVES_SPHEROID 32773 |
@@ -1044,6 +1049,7 @@ | ||
1044 | 1049 | #define ID_FILE_SAVE33088 33088 |
1045 | 1050 | #define ID_FILE_SAVESB 33089 |
1046 | 1051 | #define ID_RENDER_BRUSEHS 33090 |
1052 | +#define ID_FILE_SAVESCENE 33091 | |
1047 | 1053 | #define IDS_HELPINFORMATION 38000 |
1048 | 1054 | |
1049 | 1055 | // Next default values for new objects |
@@ -1051,9 +1057,9 @@ | ||
1051 | 1057 | #ifdef APSTUDIO_INVOKED |
1052 | 1058 | #ifndef APSTUDIO_READONLY_SYMBOLS |
1053 | 1059 | #define _APS_3D_CONTROLS 1 |
1054 | -#define _APS_NEXT_RESOURCE_VALUE 345 | |
1055 | -#define _APS_NEXT_COMMAND_VALUE 33091 | |
1056 | -#define _APS_NEXT_CONTROL_VALUE 1539 | |
1060 | +#define _APS_NEXT_RESOURCE_VALUE 347 | |
1061 | +#define _APS_NEXT_COMMAND_VALUE 33092 | |
1062 | +#define _APS_NEXT_CONTROL_VALUE 1542 | |
1057 | 1063 | #define _APS_NEXT_SYMED_VALUE 112 |
1058 | 1064 | #endif |
1059 | 1065 | #endif |