Vegastrike 0.5.1 rc1  1.0
Original sources for Vegastrike Evolved
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
base_init.cpp
Go to the documentation of this file.
1 #include <math.h>
2 #include "cs_python.h"
3 #include "python/python_class.h"
4 #include "base.h"
5 #include "base_util.h"
6 #include "vsfilesystem.h"
7 
8 #include <boost/version.hpp>
9 #if BOOST_VERSION != 102800
10 #include <boost/python.hpp>
11 typedef boost::python::dict BoostPythonDictionary;
12 #else
13 #include <boost/python/objects.hpp>
14 typedef boost::python::dictionary BoostPythonDictionary;
15 #endif
16 #if BOOST_VERSION != 102800
17 #include <boost/python/object.hpp>
18 #include <boost/python/dict.hpp>
19 #else
20 #include <boost/python/objects.hpp>
21 #endif
22 
24 {
25  return BaseUtil::GetEventData();
26 }
27 
28 static boost::python::tuple GetRandomBarMessage()
29 {
30  gameMessage last;
31  int i = 0;
32  vector< std::string >who;
33  vector< std::string >say;
34  vector< std::string >sounds;
35  string newmsg;
36  string newsound;
37  who.push_back( "bar" );
38  while ( ( mission->msgcenter->last( i++, last, who ) ) ) {
39  newmsg = last.message;
40  newsound = "";
41  std::string::size_type first = newmsg.find_first_of( "[" );
42  {
43  string::size_type last = newmsg.find_first_of( "]" );
44  if ( first != string::npos && (first+1) < newmsg.size() ) {
45  newsound = newmsg.substr( first+1, last-first-1 );
46  newmsg = newmsg.substr( 0, first );
47  }
48  }
49  sounds.push_back( newsound );
50  say.push_back( newmsg );
51  }
52  if ( say.size() ) {
53  int index = rand()%say.size();
54  return VS_BOOST_MAKE_TUPLE_2( say[index], sounds[index] );
55  } else {
56  return VS_BOOST_MAKE_TUPLE_2( "", "" );
57  }
58 }
59 
60 PYTHON_BEGIN_MODULE( Base )
61 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::Room, "Room" );
62 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::SetCurRoom, "SetCurRoom" );
63 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::GetCurRoom, "GetCurRoom" );
64 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::GetNumRoom, "GetNumRoom" );
65 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::GetNumRoom, "HasObject" );
66 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::Comp, "Comp" );
67 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::CompPython, "CompPython" );
68 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::Launch, "Launch" );
69 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::LaunchPython, "LaunchPython" );
70 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::Link, "Link" );
71 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::LinkPython, "LinkPython" );
72 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::Python, "Python" );
73 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::EraseLink, "EraseLink" );
74 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::Ship, "Ship" );
75 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::Texture, "Texture" );
76 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::Video, "Video" );
77 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::VideoStream, "VideoStream" );
78 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::PlayVideo, "PlayVideo" );
79 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::StopVideo, "StopVideo" );
80 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::SetVideoCallback, "SetVideoCallback" );
81 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::SetDJEnabled, "SetDJEnabled" );
82 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::SetTexture, "SetTexture" );
83 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::SetTextureSize, "SetTextureSize" );
84 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::SetTexturePos, "SetTexturePos" );
85 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::EnqueueMessageToRoom, "EnqueueMessageToRoom" );
86 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::MessageToRoom, "MessageToRoom" );
87 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::EnqueueMessage, "EnqueueMessage" );
88 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::Message, "Message" );
89 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::EraseObj, "EraseObj" );
90 PYTHON_DEFINE_GLOBAL( Base, &::GetRandomBarMessage, "GetRandomBarMessage" );
91 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::RunScript, "RunScript" );
92 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::TextBox, "TextBox" );
93 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::SetTextBoxText, "SetTextBoxText" );
94 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::GlobalKeyPython, "GlobalKeyPython" );
95 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::SetLinkArea, "SetLinkArea" );
96 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::SetLinkText, "SetLinkText" );
97 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::SetLinkPython, "SetLinkPython" );
98 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::SetLinkRoom, "SetLinkRoom" );
99 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::SetLinkEventMask, "SetLinkEventMask" );
100 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::BuyShip, "BuyShip" );
101 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::SellShip, "SellShip" );
102 
103 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::SetEventData, "SetEventData" );
104 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::SetMouseEventData, "SetMouseEventData" );
106 
107 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::GetTextWidth, "GetTextWidth" );
108 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::GetTextHeight, "GetTextHeight" );
109 
110 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::LoadBaseInterface, "LoadBaseInterface" );
111 PYTHON_DEFINE_GLOBAL( Base, &BaseUtil::ExitGame, "ExitGame" );
112 
113 PYTHON_END_MODULE( Base )
114 
115 void InitBase()
116 {
117  Python::reseterrors();
118  PYTHON_INIT_MODULE( Base );
119  Python::reseterrors();
120 }
121