Advanced Strategic Command
eventinfo.cpp
Go to the documentation of this file.
1 /*
2  This file is part of Advanced Strategic Command; http://www.asc-hq.de
3  Copyright (C) 1994-2010 Martin Bickel and Marc Schellenberger
4 
5  This program is free software; you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published by
7  the Free Software Foundation; either version 2 of the License, or
8  (at your option) any later version.
9 
10  This program is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU General Public License for more details.
14 
15  You should have received a copy of the GNU General Public License
16  along with this program; see the file COPYING. If not, write to the
17  Free Software Foundation, Inc., 59 Temple Place, Suite 330,
18  Boston, MA 02111-1307 USA
19 */
20 
21 
22 #include "../global.h"
23 
24 #include "../typen.h"
25 #include "../mapfield.h"
26 #include "../gamemap.h"
27 #include "eventinfo.h"
28 #include "../gameeventsystem.h"
29 
30 #include "../widgets/textrenderer.h"
31 
32 
33 static const char* triggerStateNames[] = { "unfulfilled", "fulfilled", "finally_fulfilled", "finally_failed" };
34 static const char* eventStateNames[] = { "Untriggered", "Triggered", "Timed", "Executed"};
35 
36 
37 void viewEventInfo ( GameMap* gamemap )
38 {
39  ASCString text;
40 
41  text += "#fontsize=18#Event Information\n";
42 
43  for (GameMap::Events::iterator e = gamemap->events.begin(); e != gamemap->events.end(); ++e ) {
44  text += "\n#fontsize=14#" + (*e)->description + "#fontsize=11#\n";
45 
46  int counter = 0;
47  for ( vector<EventTrigger*>::iterator t = (*e)->trigger.begin(); t != (*e)->trigger.end(); ++t ) {
48  text += "Trigger " + ASCString::toString(counter++) + " ";
49  text += triggerStateNames[(*t)->state(gamemap->actplayer)];
50  if ( (*t)->invert )
51  text += " (inverted)";
52  text += "\n";
53  }
54  text += "Event ";
55  text += eventStateNames[(*e)->status];
56  text += "\n";
57 
58  }
59 
60  ViewFormattedText vft( "Field Information", text, PG_Rect( -1, -1, 420, 600 ));
61  vft.Show();
62  vft.RunModal();
63 }
64 
65 
66 
Events events
Definition: gamemap.h:291
The ASCString class provides an abstract way to manipulate strings.
Definition: ascstring.h:14
static ASCString toString(int i)
converts the parameter to a String
Definition: ascstring.cpp:193
static const char * eventStateNames[]
Definition: eventinfo.cpp:34
void viewEventInfo(GameMap *gamemap)
Definition: eventinfo.cpp:37
signed char actplayer
the player who is currently making his moves (may be human or AI)
Definition: gamemap.h:232
static const char * triggerStateNames[]
Definition: eventinfo.cpp:33
The map. THE central structure of ASC, which holds everything not globally available together...
Definition: gamemap.h:182