[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Pingus-CVS] CVS: Games/Pingus/src demo_recorder.cxx,1.8,1.9 demo_record
From: |
grumbel |
Subject: |
[Pingus-CVS] CVS: Games/Pingus/src demo_recorder.cxx,1.8,1.9 demo_recorder.hxx,1.7,1.8 |
Date: |
7 Oct 2002 12:25:10 -0000 |
Update of /usr/local/cvsroot/Games/Pingus/src
In directory dark:/tmp/cvs-serv4314
Modified Files:
demo_recorder.cxx demo_recorder.hxx
Log Message:
- made error handling a bit better
Index: demo_recorder.cxx
===================================================================
RCS file: /usr/local/cvsroot/Games/Pingus/src/demo_recorder.cxx,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- demo_recorder.cxx 6 Oct 2002 19:20:14 -0000 1.8
+++ demo_recorder.cxx 7 Oct 2002 12:25:07 -0000 1.9
@@ -34,6 +34,7 @@
using namespace std;
DemoRecorder::DemoRecorder(Server* server)
+ : record_demo (true)
{
std::string levelname = server->get_plf()->get_filename();
@@ -45,33 +46,50 @@
if (!out)
{
- assert(!"DemoRecorder: Couldn't write DemoFile");
+ record_demo = false;
+
+ std::cout << "DemoRecorder: Error: Couldn't write DemoFile, demo
recording will be disabled" << std::endl;
}
-
- // Write file header
- out << "<pingus-demo>\n"
- << " <level>" << levelname << "</level>\n"
- << " <events>" << std::endl;
+ else
+ {
+ record_demo = true;
+
+ // Write file header
+ out << "<pingus-demo>\n"
+ << " <level>" << levelname << "</level>\n"
+ << " <events>" << std::endl;
+ }
}
else
{
- assert(!"DemoRecorder Couldn't get levelname");
+ record_demo = false;
+ // This point should only be reachable if we have a bug
+ // somewhere or provide a way to get a PLF without using XMLPLF,
+ // since we don't do that, a bug must be somewhere when we reach
+ // this.
+ assert(!"ERROR: DemoRecorder: Couldn't get levelname, please report this
as a bug!");
}
}
DemoRecorder::~DemoRecorder()
{
- // Write file footer
- out << " </events>\n"
- << "</pingus-demo>" << std::endl;
- out.close();
+ if (record_demo)
+ {
+ // Write file footer
+ out << " </events>\n"
+ << "</pingus-demo>" << std::endl;
+ out.close();
+ }
}
void
DemoRecorder::record_event (const ServerEvent& event)
{
- event.write_xml(out);
- event.write_xml(std::cout);
+ if (record_demo)
+ {
+ event.write_xml(out);
+ event.write_xml(std::cout);
+ }
}
string
@@ -82,7 +100,7 @@
struct tm *loctime;
curtime = time (NULL);
loctime = localtime(&curtime);
- strftime(buffer, 32, "%Y-%m-%d_%H%M%S", loctime);
+ strftime(buffer, 32, "%Y%m%d-%H%M%S", loctime);
return string(buffer);
}
Index: demo_recorder.hxx
===================================================================
RCS file: /usr/local/cvsroot/Games/Pingus/src/demo_recorder.hxx,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- demo_recorder.hxx 3 Oct 2002 12:33:08 -0000 1.7
+++ demo_recorder.hxx 7 Oct 2002 12:25:07 -0000 1.8
@@ -30,6 +30,10 @@
class DemoRecorder
{
private:
+ /** Set to true to record a demo, set to false to ignore
+ record_event() messages */
+ bool record_demo;
+
/** Stream to which the events are written */
std::ofstream out;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Pingus-CVS] CVS: Games/Pingus/src demo_recorder.cxx,1.8,1.9 demo_recorder.hxx,1.7,1.8,
grumbel <=