00001
00007 #ifdef __cplusplus
00008 extern "C" {
00009 #endif
00010
00011 #ifndef SCOLPLUGIN_H
00012 #define SCOLPLUGIN_H
00013
00014 #if VERSIONPC
00015 #include <windows.h>
00016 #else
00017 #include <stdio.h>
00018 #endif
00019
00020
00021
00022
00023
00024 #define SizeWord 4
00025 #define SizeHeader 3
00026
00027 #define NIL -1
00028
00029
00030 struct Mmachine
00031 {
00032 int *tape;
00033 int sizetape;
00034 int pp;
00035 int maxpp;
00036 int topheap;
00037 int sigGC;
00038 int h;
00039 int err;
00040 int *top;
00041
00042 int lckdGC;
00043 };
00044
00045 typedef struct Mmachine *mmachine;
00046
00047
00048 #define TYPETAB 1
00049 #define TYPEBUF 0
00050
00051
00052 #define MERREND 1
00053 #define MERROK 0
00054 #define MERRMEM -1
00055 #define MERRTYP -2
00056 #define MERRRET -3
00057 #define MERRNUL -4
00058 #define MERRNF -5
00059 #define MERRLINK -6
00060 #define MERRFULL -7
00061 #define MERRUNKNOWN -8
00062 #define MERRTOOLARGE -9
00063
00064 #define MERREP -10
00065 #define MERRFILE -11
00066 #define MERRCLOSE -12
00067
00068 #define MERRCHNLDWN -13
00069
00070
00071 #define OFFSCCUR 0
00072
00073 #define OFFOBJMAG 0
00074 #define OFFOBJCHN 1
00075 #define OFFOBJTYP 2
00076 #define OFFOBJHAND 3
00077 #define OFFOBJTPERE 4
00078 #define OFFOBJHPERE 5
00079 #define OFFOBJREF0 6
00080 #define OFFOBJUSER0 7
00081
00082
00083 #define MSKFOO 1
00084 #define MSKRUNTIME 2
00085 #define MSKWARNING 4
00086 #define MSKTRACE 8
00087 #define MSKDEBUG 16
00088
00089
00090
00091 #define TYPVAR -1
00092 #define TYPCONS -2
00093 #define TYPTYPE -3
00094 #define TYPFIELD -4
00095 #define TYPSTRUC -5
00096 #define TYPCONS0 -6
00097 #define TYPCOM -7
00098 #define TYPCOMV -8
00099
00100
00101
00102
00103
00104 #define SIZESIGN 1024
00105
00106 struct Packdir
00107 {
00108 char path[SIZESIGN];
00109 int quota;
00110 struct Packdir *next;
00111 };
00112 typedef struct Packdir *packdir;
00113
00114 #define TYPESNONE 0
00115 #define TYPESLOGIC 1
00116
00117
00118
00119
00120
00121 struct CBmachine
00122 {
00123 int (*MMpush)(mmachine m, int val);
00124 int (*MMpushNoGC)(mmachine m, int val);
00125 int (*MMpull)(mmachine m);
00126 int (*MMgetPP)(mmachine m);
00127 void (*MMsetPP)(mmachine m,int i);
00128 int (*MMget)(mmachine m,int i);
00129 void (*MMset)(mmachine m,int i,int v);
00130 int (*MMgetglobal)(mmachine m,int i);
00131 void (*MMsetglobal)(mmachine m,int i,int v);
00132 int (*MMgetbase)(mmachine m,int b,int i);
00133 void (*MMsetbase)(mmachine m,int b,int i,int v);
00134 int (*MMfetch)(mmachine m,int s,int i);
00135 void (*MMstore)(mmachine m,int s,int i,int v);
00136 int* (*MMstart)(mmachine m,int s);
00137 int (*MMsize)(mmachine m,int s);
00138 int (*MMtype)(mmachine m,int s);
00139 char* (*MMstartstr)(mmachine m,int s);
00140 int (*MMsizestr)(mmachine m,int s);
00141 void (*MMsetsizestr)(mmachine m,int s,int size);
00142 int (*MMmalloc)(mmachine m, int size, int type);
00143 int (*MMmallocCLR)(mmachine m, int size, int type);
00144 int (*Mpushstrbloc)(mmachine m,char *buf);
00145 int (*MBdeftab)(mmachine m);
00146 int (*MBstrcat)(mmachine m);
00147 int (*PKhardpak)(mmachine m, char *name,
00148 int n, char **namefun, int (**fun)(mmachine z),
00149 int *nargfun, char **typfun);
00150 int (*PKloader)(mmachine m,char *name,char *simplename);
00151 int (*SPfindfile)(packdir p,char *sign,int *size,char *path);
00152 int (*SPaddfile)(packdir p,char *sign,int size,char *path);
00153 int (*SCgetsrvsocket)(mmachine m, int server);
00154 int (*SCgetsocket)(mmachine m, int channel);
00155 int (*Mcutting)(char *comm, char **argv);
00156 void (*MMechostr)(int i,char *buf,...);
00157 size_t (*fread)(void* buf,size_t i,size_t j,FILE *f);
00158 packdir Firstpack;
00159 int (*OBJcreate)(mmachine m,int typ,int handsys,int typpere,int handsyspere);
00160 int (*OBJaddreflex)(mmachine m,int typ, int num);
00161 int (*OBJbeginreflex)(mmachine m,int typ,int handsys,int num);
00162 int (*OBJdel)(mmachine m,int p,int flag);
00163 int (*OBJdestroy)(mmachine m, int typ,int handsys,int objm,int flag);
00164 int (*OBJdelTH)(mmachine m,int typ,int handsys);
00165 int (*OBJcallreflex)(mmachine m,int nbarg);
00166 int (*OBJregister)(int nbrefl,int recrefl,int (*destroy)(mmachine m,int handsys,int objm),char *name);
00167 int (*OBJtypebyname)(char *name);
00168 int (*OBJdefEvent)(int event,int (*cbevent)(mmachine m,int hwnd, unsigned msg,
00169 int wParam,int lParam,int *ret));
00170 int (*OBJgetUserEvent)();
00171 void* (*SCgetExtra)(char *funcname);
00172 char* (*stdloadJpg)(char *name,int *w,int *h);
00173 int (*OBJdelTM)(mmachine m,int typ,int q);
00174 int (*OBJfindTH)(mmachine m,int typ,int handsys);
00175 int (*OBJfindTM)(mmachine m,int typ,int objm);
00176 int (*Mpushstrblocn)(mmachine m,char *buf, int n);
00177 int (*Minterpreter)(mmachine m);
00178 int (*Msearchinsyspak)(mmachine m, char *name);
00179 int (*MBstrcatn)(mmachine m);
00180 int (*Buffer2texture)(mmachine m, char *buffer, int width, int height);
00181 void (*MMputs)(int i, const char* text);
00182
00183
00184 int (*OBJgetNewHandler)();
00185
00186
00187 };
00188 typedef struct CBmachine *cbmachine;
00189
00190 extern cbmachine ww;
00191
00192 #define SCOLinitplugin(X) ww=X
00193
00194 #define MMpush (ww->MMpush)
00195 #define MMpushNoGC (ww->MMpushNoGC)
00196 #define MMpull (ww->MMpull)
00197 #define MMgetPP (ww->MMgetPP)
00198 #define MMsetPP (ww->MMsetPP)
00199 #define MMget (ww->MMget)
00200 #define MMset (ww->MMset)
00201 #define MMgetglobal (ww->MMgetglobal)
00202 #define MMsetglobal (ww->MMsetglobal)
00203 #define MMgetbase (ww->MMgetbase)
00204 #define MMsetbase (ww->MMsetbase)
00205 #define MMfetch (ww->MMfetch)
00206 #define MMstore (ww->MMstore)
00207 #define MMstart (ww->MMstart)
00208 #define MMsize (ww->MMsize)
00209 #define MMtype (ww->MMtype)
00210 #define MMstartstr (ww->MMstartstr)
00211 #define MMsizestr (ww->MMsizestr)
00212 #define MMsetsizestr (ww->MMsetsizestr)
00213 #define MMmalloc (ww->MMmalloc)
00214 #define MMmallocCLR (ww->MMmallocCLR)
00215 #define Mpushstrbloc (ww->Mpushstrbloc)
00216 #define MBdeftab (ww->MBdeftab)
00217 #define MBstrcat (ww->MBstrcat)
00218 #define PKhardpak (ww->PKhardpak)
00219 #define PKloader (ww->PKloader)
00220 #define SPfindfile (ww->SPfindfile)
00221 #define SPaddfile (ww->SPaddfile)
00222 #define SCgetsrvsocket (ww->SCgetsrvsocket)
00223 #define SCgetsocket (ww->SCgetsocket)
00224 #define Mcutting (ww->Mcutting)
00225 #define MMechostr (ww->MMechostr)
00226
00227 #define Firstpack (ww->Firstpack)
00228 #define OBJcreate (ww->OBJcreate)
00229 #define OBJaddreflex (ww->OBJaddreflex)
00230 #define OBJbeginreflex (ww->OBJbeginreflex)
00231 #define OBJdel (ww->OBJdel)
00232 #define OBJdestroy (ww->OBJdestroy)
00233 #define OBJdelTH (ww->OBJdelTH)
00234 #define OBJcallreflex (ww->OBJcallreflex)
00235 #define OBJregister (ww->OBJregister)
00236 #define OBJtypebyname (ww->OBJtypebyname)
00237 #define OBJdefEvent (ww->OBJdefEvent)
00238 #define OBJgetUserEvent (ww->OBJgetUserEvent)
00239 #define SCgetExtra (ww->SCgetExtra)
00240 #define stdloadJpg (ww->stdloadJpg)
00241 #define OBJdelTM (ww->OBJdelTM)
00242 #define OBJfindTH (ww->OBJfindTH)
00243 #define OBJfindTM (ww->OBJfindTM)
00244 #define Mpushstrblocn (ww->Mpushstrblocn)
00245 #define Minterpreter (ww->Minterpreter)
00246 #define Msearchinsyspak (ww->Msearchinsyspak)
00247 #define MBstrcatn (ww->MBstrcatn)
00248 #define Buf2Tex (ww->Buffer2texture)
00249 #define MMputs (ww->MMputs)
00250
00251
00252 #define OBJgetNewHandler (ww->OBJgetNewHandler)
00253
00254
00255
00256 #endif
00257
00258 #ifdef __cplusplus
00259 }
00260 #endif