summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLieuwe <lieuwemo@gmail.com>2011-03-18 18:42:23 (GMT)
committer Lieuwe <lieuwemo@gmail.com>2011-03-18 18:42:23 (GMT)
commit7e27282b92f2eaf6e1cee9fbc73817de054caf59 (patch)
tree271f382723957f2ed36ce7d0f1794aede4aed223 /src
parent96959503cd094e09c2d26f298d79cfde34b58491 (diff)
downloadpowder-7e27282b92f2eaf6e1cee9fbc73817de054caf59.zip
powder-7e27282b92f2eaf6e1cee9fbc73817de054caf59.tar.gz
you can now disable(tpt.disable_python) or enable(python) the python console :D
Diffstat (limited to 'src')
-rw-r--r--src/interface.c10
-rw-r--r--src/main.c24
2 files changed, 28 insertions, 6 deletions
diff --git a/src/interface.c b/src/interface.c
index 72320aa..b626138 100644
--- a/src/interface.c
+++ b/src/interface.c
@@ -3851,7 +3851,7 @@ typedef struct command_history command_history;
command_history *last_command = NULL;
command_history *last_command2 = NULL;
char *console_ui(pixel *vid_buf,char error[255],char console_more) {
- int mx,my,b,cc,ci = -1;
+ int mx,my,b,cc,ci = -1,i;
pixel *old_buf=calloc((XRES+BARSIZE)*(YRES+MENUSIZE), PIXELSIZE);
command_history *currentcommand;
command_history *currentcommand2;
@@ -3892,10 +3892,14 @@ char *console_ui(pixel *vid_buf,char error[255],char console_more) {
//clearrect(vid_buf, 0, 0, XRES+BARSIZE, 220);//anyway to make it transparent?
memcpy(vid_buf,old_buf,(XRES+BARSIZE)*YRES*PIXELSIZE);
draw_line(vid_buf, 0, 219, XRES+BARSIZE-1, 219, 228, 228, 228, XRES+BARSIZE);
+ if(pygood)
+ i=255;
+ else
+ i=0;
if(pyready)
- drawtext(vid_buf, 15, 15, "Welcome to The Powder Toy console v.3 (by cracker64, python by Doxin)",255, 255, 255, 255);
+ drawtext(vid_buf, 15, 15, "Welcome to The Powder Toy console v.3 (by cracker64, python by Doxin)",255,i,i, 255);
else
- drawtext(vid_buf, 15, 15, "Welcome to The Powder Toy console v.3 (by cracker64, python disabled)",255, 0, 0, 255);
+ drawtext(vid_buf, 15, 15, "Welcome to The Powder Toy console v.3 (by cracker64, python disabled)",255,i,i, 255);
cc = 0;
currentcommand = last_command;
diff --git a/src/main.c b/src/main.c
index 5c2fb12..208c38c 100644
--- a/src/main.c
+++ b/src/main.c
@@ -31,6 +31,7 @@
#include "pyconsole.h"
//#include "pystdlib.h"
char pyready=1;
+char pygood=1;
#endif
#include <stdio.h>
@@ -1965,6 +1966,15 @@ emb_set_velocity(PyObject *self, PyObject *args)
return Py_BuildValue("i",1);
}
+static PyObject*
+emb_disable_python(PyObject *self, PyObject *args)
+{
+ if(!PyArg_ParseTuple(args, ":disable_python"))
+ return NULL;
+ pyready=0;
+ return Py_BuildValue("i",1);
+}
+
static PyMethodDef EmbMethods[] = { //WARNING! don't forget to register your function here!
{"create", (PyCFunction)emb_create, METH_VARARGS|METH_KEYWORDS, "create a particle."},
{"log", (PyCFunction)emb_log, METH_VARARGS, "logs an error string to the console."},
@@ -2004,6 +2014,7 @@ static PyMethodDef EmbMethods[] = { //WARNING! don't forget to register your fun
{"delete", (PyCFunction)emb_delete, METH_VARARGS, "delete a particle"},
{"set_pressure", (PyCFunction)emb_set_pressure, METH_VARARGS, "set pressure"},
{"set_velocity", (PyCFunction)emb_set_velocity, METH_VARARGS, "set velocity"},
+ {"disable_python", (PyCFunction)emb_disable_python, METH_VARARGS, "switch back to the old console."},
{NULL, NULL, 0, NULL}
};
#endif
@@ -2093,6 +2104,7 @@ int main(int argc, char *argv[])
printf("unable to find handle function, mangled console.py?\n");
//return -1;
pyready=0;
+ pygood=0;
}
pstep=PyObject_GetAttrString(pmodule,"step");//get the handler function
@@ -2122,6 +2134,7 @@ int main(int argc, char *argv[])
printf("unable to find console module, missing file or mangled console.py?\n");
//return -1;
pyready=0;
+ pygood=0;
}
#else
printf("python console disabled at compile time.");
@@ -2751,7 +2764,7 @@ int main(int argc, char *argv[])
}
}
#ifdef PYCONSOLE
- if(pyready==1)
+ if(pyready==1 && pygood==1)
if(pkey!=NULL && sdl_key!=NULL)
{
pargs=Py_BuildValue("(c)",sdl_key);
@@ -3664,7 +3677,7 @@ int main(int argc, char *argv[])
if(console_mode)
{
#ifdef PYCONSOLE
- if(pyready==1)
+ if(pyready==1 && pygood==1)
{
char *console;
//char error[255] = "error!";
@@ -3716,7 +3729,7 @@ int main(int argc, char *argv[])
//execute python step hook
#ifdef PYCONSOLE
- if(pyready==1)
+ if(pyready==1 && pygood==1)
if(pstep!=NULL)
{
pargs=Py_BuildValue("()");
@@ -3907,6 +3920,11 @@ int process_command_old(pixel *vid_buf,char *console,char *console_error) {
if (sound_enable) play_sound(console3);
else strcpy(console_error, "Audio device not available - cannot play sounds");
}
+ else if(strcmp(console2, "python")==0)
+ if(pygood==1)
+ pyready=1;
+ else
+ strcpy(console_error, "python not ready. check stdout for more info.");
else if(strcmp(console2, "load")==0 && console3)
{
j = atoi(console3);