You can now remove big overlays in the editor.

This commit is contained in:
Justin Marshall
2020-07-25 14:04:12 -07:00
parent 21a7ea57ea
commit 364659e640
5 changed files with 376 additions and 327 deletions
+279 -325
View File
@@ -324,287 +324,245 @@ Percent=0
296=1266690944 296=1266690944
297=1266691200 297=1266691200
298=1283468416 298=1283468416
299=1166026880 299=1098917760
300=1182803840 300=1115694720
301=1182804096 301=1115694976
302=1182804352 302=1115695232
303=1199581312 303=1132472192
304=1199581568 304=1132472448
305=1199581824 305=1132472704
306=1216359040 306=1149249920
307=1216359296 307=1149250176
308=1233136512 308=1166027392
309=1233136768 309=1166027648
310=1249913984 310=1082140544
311=1149249408 311=1082140800
312=1149249664 312=1098917504
313=1166026368 313=1098918016
314=1166026624 314=1098918272
315=1166027136 315=1115695488
316=1182804608 316=1115695744
317=1199582080 317=1132472960
318=1098917760 318=1048586368
319=1115694720 319=1048586624
320=1115694976 320=1065363328
321=1115695232 321=1065363584
322=1132472192 322=1065363840
323=1132472448 323=1065364096
324=1132472704 324=1082141056
325=1149249920 325=1082141312
326=1149250176 326=1082141568
327=1166027392 327=1098918528
328=1166027648 328=1098918784
329=1082140544 329=1098919040
330=1082140800 330=1115696000
331=1098917504 331=998254720
332=1098918016 332=1015031680
333=1098918272 333=1015031936
334=1115695488 334=1015032192
335=1115695744 335=1031809152
336=1132472960 336=1031809408
337=1048586368 337=1031809664
338=1048586624 338=1048586880
339=1065363328 339=1048587136
340=1065363584 340=1065364352
341=1065363840 341=1065364608
342=1065364096 342=998254976
343=1082141056 343=1015032448
344=1082141312 344=1031809920
345=1082141568 345=998254208
346=1098918528 346=998254464
347=1098918784 347=1015031424
348=1098919040 348=1031808896
349=1115696000 349=998253696
350=998254720 350=1015030656
351=1015031680 351=1015030912
352=1015031936 352=1015031168
353=1015032192 353=1031807872
354=1031809152 354=1031808128
355=1031809408 355=1031808384
356=1031809664 356=1031808640
357=1048586880 357=1048585344
358=1048587136 358=1048585600
359=1065364352 359=1048585856
360=1065364608 360=1048586112
361=998254976 361=1065362816
362=1015032448 362=1065363072
363=1031809920 363=998252928
364=998254208 364=1015029888
365=998254464 365=1015030144
366=1015031424 366=1015030400
367=1031808896 367=1031807360
368=998253696 368=1031807616
369=1015030656 369=1048584832
370=1015030912 370=1048585088
371=1015031168 371=998252416
372=1031807872 372=1015029376
373=1031808128 373=1015029632
374=1031808384 374=1031806848
375=1031808640 375=1031807104
376=1048585344 376=1048584320
377=1048585600 377=1048584576
378=1048585856 378=998251904
379=1048586112 379=1015028864
380=1065362816 380=1015029120
381=1065363072 381=1031806336
382=998252928 382=1031806592
383=1015029888 383=1048583808
384=1015030144 384=1048584064
385=1015030400 385=998251392
386=1031807360 386=1015028352
387=1031807616 387=1015028608
388=1048584832 388=1031805824
389=1048585088 389=1031806080
390=998252416 390=1048583296
391=1015029376 391=1048583552
392=1015029632 392=998250880
393=1031806848 393=998251136
394=1031807104 394=1015028096
395=1048584320 395=1031805568
396=1048584576 396=1048583040
397=998251904 397=796924288
398=1015028864 398=813701504
399=1015029120 399=813701760
400=1031806336 400=830478720
401=1031806592 401=830478976
402=1048583808 402=830479232
403=1048584064 403=847255936
404=998251392 404=847256192
405=1015028352 405=780147072
406=1015028608 406=780147328
407=1031805824 407=796924544
408=1031806080 408=796924800
409=1048583296 409=813702016
410=1048583552 410=813702272
411=998250880 411=830479488
412=998251136 412=830479744
413=1015028096 413=847256704
414=1031805568 414=847256960
415=1048583040 415=796925056
416=796924288 416=813702528
417=813701504 417=830480000
418=813701760 418=847257216
419=830478720 419=796925312
420=830478976 420=813702784
421=830479232 421=830480256
422=847255936 422=847257472
423=847256192 423=847257728
424=780147072 424=864034432
425=780147328 425=864034688
426=796924544 426=796925568
427=796924800 427=796925824
428=813702016 428=813703040
429=813702272 429=813703296
430=830479488 430=830480512
431=830479744 431=830480768
432=847256704 432=847257984
433=847256960 433=847258240
434=796925056 434=864035200
435=813702528 435=864035456
436=830480000 436=813703552
437=847257216 437=830481024
438=796925312 438=847258496
439=813702784 439=864035712
440=830480256 440=864035968
441=847257472 441=880812928
442=847257728 442=880813184
443=864034432 443=813703808
444=864034688 444=813704064
445=796925568 445=830481280
446=796925824 446=830481536
447=813703040 447=847258752
448=813703296 448=847259008
449=830480512 449=864036224
450=830480768 450=813704320
451=847257984 451=813704576
452=847258240 452=830481792
453=864035200 453=830482048
454=864035456 454=847259264
455=813703552 455=847259520
456=830481024 456=864036480
457=847258496 457=864036736
458=864035712 458=864036992
459=864035968 459=880813696
460=880812928 460=880813952
461=880813184 461=796927872
462=813703808 462=796928128
463=813704064 463=813705344
464=830481280 464=813705600
465=830481536 465=830482816
466=847258752 466=830483072
467=847259008 467=847260288
468=864036224 468=763373440
469=813704320 469=780150400
470=813704576 470=780150656
471=830481792 471=780150912
472=830482048 472=796927360
473=847259264 473=796927616
474=847259520 474=796928384
475=864036480 475=813704832
476=864036736 476=813705088
477=864036992 477=813705856
478=880813696 478=830482304
479=880813952 479=830482560
480=796927872 480=847259776
481=796928128 481=847260032
482=813705344 482=645932672
483=813705600 483=645932928
484=830482816 484=662709632
485=830483072 485=662709888
486=847260288 486=662710144
487=763373440 487=662710400
488=780150400 488=679487616
489=780150656 489=679487872
490=780150912 490=696265088
491=796927360 491=696265344
492=796927616 492=612378752
493=796928384 493=629155968
494=813704832 494=629156224
495=813705088 495=645933440
496=813705856 496=645933696
497=830482304 497=662710912
498=830482560 498=612379008
499=847259776 499=629156480
500=847260032 500=645933952
501=746595968 501=662711168
502=746596224 502=662711424
503=763372928 503=679488384
504=763373184 504=612379264
505=763373696 505=629156736
506=780151168 506=645934208
507=796928640 507=662711680
508=679487104 508=679488640
509=679487360 509=679488896
510=696264064 510=679489152
511=696264320 511=696266112
512=696264576 512=629156992
513=696264832 513=629157248
514=713041536 514=645934464
515=713041792 515=645934720
516=713042048 516=662711936
517=713042304 517=662712192
518=729819008 518=612379776
519=729819264 519=612380032
520=729819520 520=629157504
521=729819776 521=645934976
522=746596480 522=578825344
523=746596736 523=595602304
524=645932672 524=595602560
525=645932928 525=595602816
526=662709632 526=612379520
527=662709888 527=612380288
528=662710144 528=629157760
529=662710400 529=562047872
530=679487616 530=562048128
531=679487872 531=562048384
532=696265088 532=578825088
533=696265344 533=578825600
534=612378752 534=578825856
535=629155968 535=595603072
536=629156224 536=595603328
537=645933440 537=612380544
538=645933696
539=662710912
540=612379008
541=629156480
542=645933952
543=662711168
544=662711424
545=679488384
546=612379264
547=629156736
548=645934208
549=662711680
550=679488640
551=679488896
552=679489152
553=696266112
554=629156992
555=629157248
556=645934464
557=645934720
558=662711936
559=662712192
560=612379776
561=612380032
562=629157504
563=645934976
564=578825344
565=595602304
566=595602560
567=595602816
568=612379520
569=612380288
570=629157760
571=562047872
572=562048128
573=562048384
574=578825088
575=578825600
576=578825856
577=595603072
578=595603328
579=612380544
[BigOverlay] [BigOverlay]
0=1296971287,56,0,7 0=1296971287,56,0,7
@@ -642,40 +600,36 @@ Percent=0
32=573650692,56,265,6 32=573650692,56,265,6
33=1263544231,36,271,17 33=1263544231,36,271,17
34=1229596588,37,288,11 34=1229596588,37,288,11
35=1187784484,19,299,12 37=1120019972,40,299,11
36=1163011742,37,311,7 38=1092691555,32,310,8
37=1120019972,40,318,11 39=1058482009,37,318,13
38=1092691555,32,329,8 40=1017587422,41,331,11
39=1058482009,37,337,13 41=1007101737,39,342,3
40=1017587422,41,350,11 42=1009591661,45,345,4
41=1007101737,39,361,3 43=1010311927,52,349,14
42=1009591661,45,364,4 44=1013129143,45,363,8
43=1010311927,52,368,14 45=1011228095,44,371,7
44=1013129143,45,382,8 46=1013324767,44,378,7
45=1011228095,44,390,7 47=1009129972,44,385,7
46=1013324767,44,397,7 48=1007884343,45,392,5
47=1009129972,44,404,7 49=793253506,6,397,8
48=1007884343,45,411,5 50=793253996,0,405,10
49=793253506,6,416,8 51=807279234,1,415,4
50=793253996,0,424,10 52=809376652,28,419,7
51=807279234,1,434,4 53=811015539,22,426,10
52=809376652,28,438,7 54=826023822,0,436,7
53=811015539,22,445,10 55=828842361,30,443,7
54=826023822,0,455,7 56=817308585,5,450,11
55=828842361,30,462,7 57=812918401,34,461,7
56=817308585,5,469,11 58=786703846,37,468,14
57=812918401,34,480,7 61=655631820,36,482,10
58=786703846,37,487,14 62=630794033,35,492,6
59=755901926,37,501,7 63=625289178,7,498,6
60=688793041,37,508,16 64=626010319,25,504,8
61=655631820,36,524,10 65=634727242,13,512,6
62=630794033,35,534,6 66=618670911,17,518,4
63=625289178,7,540,6 67=593505023,36,522,7
64=626010319,25,546,8 68=564144917,16,529,9
65=634727242,13,554,6
66=618670911,17,560,4
67=593505023,36,564,7
68=564144917,16,571,9
[Map] [Map]
Theater=SNOW Theater=SNOW
@@ -744,15 +698,15 @@ Player=Multi1
Count=0 Count=0
[OverlayPack] [OverlayPack]
1=BgEAIIH//qAQ/4EGypQQgQj+cAD/iwYIBgUFCAcG/wYHIBAwBv5rAP+FBf8HBf8AhACD/3 1=DwEAIIH//qAQ/4EF2JQQ/mMA/4oFBQYHBQYFB/8GMHuBCP5wAP+DBf8HAAODCAcGMHqBB/
2=UALBEAgVD8/3YAqhCD/wgI/30AJhLLrREBDv5xAP/JoRD/dAAwE9QZE9ASEv5eAP8Dhdcv 2=5xAP8A+AD/YAH/cQAwEYL/CAEBYAH/cgCwEcutEoEG/nMA/8mvEP91ALAS46QQ/2EArxCB
3=FIEFEAH+XAD/gQUkCtmxFP5fAP+CBgbJJRLOPBT/YgBIFYEI168SAHv/YwDKFdiwEiB+/3 3=BQAC1jATgQUQAf5cAP+FCAcICAXWMRL/YADKFBJ7gggG1zATARz/YQBJFYEF1zASAHv/Yw
4=wAsBP/YwBIFeAoF/76Af//UgDOF+zJGf9/AMoW/1EARxftzRoVAv5OAP8QT+hNG/9QAEoX 4=DKFdiwEyB+/3EArxD/bgA9FeAoF/76Af//UgDOF+zJGf9/AMoW/1EARxftzRoVAv5OAP8Q
5=7c0b/08ASxoQT+vLG/9QAE0b/4AASxr/hACsE+Z6Hf9+AM0XIIH/ewBJHjp+/3sASh45ge 5=T+hNG/9QAEoX7c0b/08ASxoQT+vLG/9QAE0b/4AASxr/dQCrEPbtEf99AKAdIIH/ewBJHj
6=+WH4CkAAAggf/iAACBBeAJAIIFBdwlAPdqAOJNAIEFAIH+dQD/UPn/WgDKAEBY1k0BQHr/ 6=p+/3sASh45ge+WH4CkAAAggf/iAACBBeAJAIIFBdwlAPdqAOJNAIEFAIH+dQD/UPn/WgDK
7=WQDMAN5MATEC/1cATAFgV9dLAf9dAMUBAN1gXtTNAgCA/1wAzABQXtVKABAg/1oASQNRAN 7=AEBY1k0BQHr/WQDMAN5MATEC/1cATAFgV9dLAf9dAMUBAN1gXtTNAgCA/1wAzABQXtVKAB
8=pKAf9cAEcDcFzYrAL/XABKAXGA2awB/2MASwDYRgP/WwBJBXB22y0E/1gATALkSwL/YwDK 8=Ag/1oASQNRANpKAf9cAEcDcFzYrAL/XABKAXGA2awB/2MASwDYRgP/WwBJBXB22y0E/1gA
9=ANrNBv9dAMYD/lgY/4A= 9=TALkSwL/YwDKANrNBv9dAMYD/lgY/4A=
[Briefing] [Briefing]
1=Rescue Einstein from the Headquarters inside this Soviet complex. Once 1=Rescue Einstein from the Headquarters inside this Soviet complex. Once
@@ -761,5 +715,5 @@ Count=0
4=Direct Tanya to destroy the westmost power plants to take them off-line. 4=Direct Tanya to destroy the westmost power plants to take them off-line.
[Digest] [Digest]
1=Fp95NseCgmsoqx7UQ/UMrQlv2CM= 1=ty7v+aJuxNMiESmZBtqZtzZ5pIc=
+68 -1
View File
@@ -18,6 +18,8 @@ BigOverlay::BigOverlay() {
image = NULL; image = NULL;
numOverlayedCells = 0; numOverlayedCells = 0;
enabled = false; enabled = false;
screenx = -1;
screeny = -1;
} }
/* /*
@@ -28,6 +30,10 @@ BigOverlay::Place
void BigOverlay::Place(int screenx, int screeny) { void BigOverlay::Place(int screenx, int screeny) {
COORDINATE lightCoord; COORDINATE lightCoord;
if (enabled) {
return;
}
Map.FlagBigOverlayCells(this, screenx, screeny); Map.FlagBigOverlayCells(this, screenx, screeny);
CellClass::ConvertIsoCoordsToScreen(screenx, screeny); CellClass::ConvertIsoCoordsToScreen(screenx, screeny);
@@ -60,9 +66,38 @@ void BigOverlay::draw_it(void) {
if ((!(cellptr->Is_Mapped(PlayerPtr) && cellptr->Is_Visible(PlayerPtr))) && !Debug_Unshroud) if ((!(cellptr->Is_Mapped(PlayerPtr) && cellptr->Is_Visible(PlayerPtr))) && !Debug_Unshroud)
return; return;
int screenx, screeny; screenx = 0;
screeny = 0;
if(Map.GetSelectedBigOverlay() == this)
{
GL_SetColor(1.0f, 0.0f, 0.0f);
}
GetRenderPosition(screenx, screeny); GetRenderPosition(screenx, screeny);
GL_RenderImage(image, screenx, screeny, image->width, image->height); GL_RenderImage(image, screenx, screeny, image->width, image->height);
if (Map.GetSelectedBigOverlay() == this)
{
GL_SetColor(1.0f, 1.0f, 1.0f);
}
}
/*
====================
BigOverlayManager::InRegion
====================
*/
bool BigOverlay::InRegion(int x, int y) {
Rect rect;
int width = image->width;
int height = image->height;
rect.X = screenx;
rect.Y = screeny;
rect.X2 = rect.X + width;
rect.Y2 = rect.Y + height;
rect.Width = width;
rect.Height = height;
return rect.ContainsPoint(x, y);
} }
/* /*
@@ -172,6 +207,22 @@ BigOverlay* BigOverlayManager::AllocateBigOverlay(void) {
return NULL; return NULL;
} }
/*
====================
BigOverlayManager::Editor_RemoveBigOverlay
====================
*/
void BigOverlayManager::Editor_RemoveBigOverlay(BigOverlay* bigOverlay) {
for(int i = 0; i < bigOverlay->numOverlayedCells; i++)
{
CellClass* cellptr = &(Map)[bigOverlay->overlayedCells[i]];
cellptr->bigOverlay = NULL;
}
bigOverlay->numOverlayedCells = 0;
bigOverlay->enabled = false;
}
/* /*
==================== ====================
BigOverlayManager::Editor_PlaceNewBigOverlay BigOverlayManager::Editor_PlaceNewBigOverlay
@@ -290,6 +341,22 @@ void BigOverlayManager::Write_Scenerio(CCINIClass* ini) {
} }
} }
/*
====================
BigOverlayManager::SelectBigOverlay
====================
*/
BigOverlay* BigOverlayManager::SelectBigOverlay(int x, int y) {
for (int i = 0; i < MAX_WORLD_BIGOVERLAYS; i++) {
if (bigOverlays[i].IsEnabled()) {
if(bigOverlays[i].InRegion(x, y)) {
return &bigOverlays[i];
}
}
}
return NULL;
}
/* /*
==================== ====================
BigOverlayManager::Read_Scenerio BigOverlayManager::Read_Scenerio
+7
View File
@@ -28,6 +28,9 @@ public:
Image_t* GetImage(void) { return image; } Image_t* GetImage(void) { return image; }
void SetEnabled(bool enabled) { this->enabled = enabled; } void SetEnabled(bool enabled) { this->enabled = enabled; }
COORDINATE GetPosition() { return position; } COORDINATE GetPosition() { return position; }
int GetScreenX() { return screenx; }
int GetScreenY() { return screeny; }
bool InRegion(int x, int y);
protected: protected:
void SetPosition(COORDINATE position) { this->position = position; } void SetPosition(COORDINATE position) { this->position = position; }
void SetOverlayNum(int overlayNum) { this->overlayNum = overlayNum; } void SetOverlayNum(int overlayNum) { this->overlayNum = overlayNum; }
@@ -42,6 +45,8 @@ private:
Image_t* image; Image_t* image;
bool enabled; bool enabled;
int index; int index;
int screenx;
int screeny;
}; };
class BigOverlayManager { class BigOverlayManager {
@@ -65,7 +70,9 @@ public:
// Allocates a big overlay // Allocates a big overlay
BigOverlay* AllocateBigOverlay(void); BigOverlay* AllocateBigOverlay(void);
BigOverlay* SelectBigOverlay(int x, int y);
void Editor_RemoveBigOverlay(BigOverlay* bigOverlay);
BigOverlay *Editor_PlaceNewBigOverlay(void); BigOverlay *Editor_PlaceNewBigOverlay(void);
private: private:
void RegisterBigOverlay(int theater, const char* name); void RegisterBigOverlay(int theater, const char* name);
+20 -1
View File
@@ -552,7 +552,17 @@ void MapEditClass::AI(KeyNumType & input, int x, int y)
//GL_DrawText(6, 64, 64, tmp); //GL_DrawText(6, 64, 64, tmp);
rc = Mouse_Moved(); rc = Mouse_Moved();
if (Keyboard->Down(KN_LMOUSE) && rc) {
if (Keyboard->Down(KN_DELETE)) {
if (GrabbedBigOverlay)
{
bigOverlayManager.Editor_RemoveBigOverlay(GrabbedBigOverlay);
GrabbedBigOverlay = NULL;
}
}
bool lMouseDown = Keyboard->Down(KN_LMOUSE);
if (lMouseDown && rc) {
if (GrabbedBigOverlay) if (GrabbedBigOverlay)
{ {
GrabbedBigOverlay->Place(Get_Mouse_X(), Get_Mouse_Y()); GrabbedBigOverlay->Place(Get_Mouse_X(), Get_Mouse_Y());
@@ -590,6 +600,15 @@ void MapEditClass::AI(KeyNumType & input, int x, int y)
} }
} }
if (lMouseDown && GrabbedBigOverlay == NULL && PendingObject == NULL)
{
BigOverlay* tempOverlay = bigOverlayManager.SelectBigOverlay(Get_Mouse_X(), Get_Mouse_Y());
if (tempOverlay)
{
GrabbedBigOverlay = tempOverlay;
}
}
if (editorSidebar.mainmenu_selection != -1) { if (editorSidebar.mainmenu_selection != -1) {
/* /*
** Turn off placement mode ** Turn off placement mode
+2
View File
@@ -205,6 +205,8 @@ class MapEditClass : public MouseClass
// int Trigger_Needs_Team(TriggerClass *trigger); // int Trigger_Needs_Team(TriggerClass *trigger);
void Fatal(int txt); void Fatal(int txt);
BigOverlay* GetSelectedBigOverlay(void) { return GrabbedBigOverlay; }
/* /*
** mapeddlg.cpp ** mapeddlg.cpp
*/ */