//master lost side dead // jared (master on lsd) aim: master on lsd /* // TODO: special command search/list view with easy to do invokes // TODO: 'Lost Side Dead' <-- area for my book/poems */ #include #include "lost.h" #define LOST_DEBUG false #define LOST_BG true #define WM_SHELLNOTIFY WM_USER+5000 #define IDI_TRAY 42 #define MXAOL "MasterX AOL6 v1" #define ID_MRUN 420 #define ID_MRES 421 #define ID_MABT 422 #define ID_MHELP 423 #define ID_MOPT 424 #define ID_CMDL 425 #define ID_AMAC 426 #define ID_SKN 247 #define WM_SOCKET WM_USER+100 mxOptions op;// options // add icon switch bool gadi = true; // important globals AOLCPP aol; UINT activeapp; lostsidedead deadgame; inputhandler ihandle; HWND mxrecvcmd; HWND mxrtcmd; HWND mxhwnd; HWND mxrun; HWND mxedit; HWND mxabout; HWND mxop; HWND mxaddkey; HWND mxmac; HWND mxlay; MasterXHWND game; MasterScreen main_scr; bool aolwatch = false; int crlen = 0; NOTIFYICONDATA note; HINSTANCE g_hInst; HMENU hMaster; HFONT mFont; HCURSOR mCur; WNDPROC OldProc; mxList credits; int credit_index = 0; bool cscroll = false; bool die = false; bool xsound = true; // instant message data struct imdat { displaylist data[100]; }; // listening SOCKET SOCKET listen_socket[100]; imdat dat[100]; int listen_index = 0; SOCKET connect_soket; LRESULT APIENTRY WndProc(HWND,UINT,WPARAM,LPARAM); LRESULT APIENTRY RunProc(HWND,UINT,WPARAM,LPARAM); LRESULT APIENTRY AboutProc(HWND,UINT,WPARAM,LPARAM); LRESULT APIENTRY EditProc(HWND,UINT,WPARAM,LPARAM); void frame_update(); void aolcheck(); void loadcredits(); void dieprog(); bool init_winsock(); int APIENTRY WinMain(HINSTANCE hInst,HINSTANCE hPrev,LPSTR l,int CmdShow) { if(init_winsock() == false) { MessageBox(0,"error with sockets.. aborting..",0,MB_ICONERROR); return 0; } // check and see if there already is a instance of the application if(FindWindow("LostSideDead",NULL)) { PostQuitMessage(0); return 0; } // point to screen game.scr = (MasterScreen*)&main_scr; g_hInst = hInst; HWND hwnd; MSG msg; WNDCLASS wc; loadcredits(); InitCommonControls(); wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH); wc.hInstance = hInst; wc.hIcon = LoadIcon(hInst,MAKEINTRESOURCE(IDI_ICON2)); wc.hCursor = LoadCursor(hInst,MAKEINTRESOURCE(IDC_CURSOR1)); wc.lpfnWndProc = (WNDPROC) WndProc; wc.lpszMenuName = NULL; wc.lpszClassName = "LostSideDead"; wc.style = CS_HREDRAW | CS_VREDRAW; RegisterClass(&wc); wc.lpszClassName = "MasterX_About"; wc.lpfnWndProc = (WNDPROC) AboutProc; RegisterClass(&wc); wc.hbrBackground = (HBRUSH) GetStockObject(LTGRAY_BRUSH); wc.lpszClassName = "MasterX_Op"; wc.lpfnWndProc = (WNDPROC) OpProc; RegisterClass(&wc); wc.hIcon = LoadIcon(hInst,MAKEINTRESOURCE(IDI_ICON2)); wc.lpszClassName = "MasterX_Run"; wc.lpfnWndProc = (WNDPROC) RunProc; RegisterClass(&wc); wc.lpszClassName = "MasterX_AddKey"; wc.lpfnWndProc = (WNDPROC) AddKeyProc; RegisterClass(&wc); wc.lpszClassName = "MasterX_Macro"; wc.lpfnWndProc = (WNDPROC) MacProc; RegisterClass(&wc); wc.lpszClassName = "MasterX_Layout"; wc.lpfnWndProc = (WNDPROC) AolLayout; RegisterClass(&wc); mFont = CreateFont(13, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, NONANTIALIASED_QUALITY, VARIABLE_PITCH, "Arial"); mCur = LoadCursor(hInst,MAKEINTRESOURCE(IDC_CURSOR1)); deadgame.die_test = true; mxlay = CreateWindowEx(WS_EX_TOPMOST,"MasterX_Layout","America Online Layout",WS_OVERLAPPED | WS_SYSMENU | WS_MINIMIZE,CW_USEDEFAULT,CW_USEDEFAULT,300,300,0,0,hInst,0); mxrun = CreateWindow("MasterX_Run","MasterX-Quick Run",WS_OVERLAPPED | WS_SYSMENU | WS_MINIMIZEBOX,0,0,308,55,0,0,hInst,0); mxop = CreateWindowEx(WS_EX_TOPMOST|WS_EX_STATICEDGE,"MasterX_Op","MasterX - Options", WS_CLIPSIBLINGS | WS_OVERLAPPED | WS_SYSMENU | WS_MINIMIZEBOX ,CW_USEDEFAULT,CW_USEDEFAULT,300,300,0,0,hInst,0); SetTimer(mxrun,1,1,NULL); mxedit = CreateWindowEx(WS_EX_STATICEDGE,"Edit","",WS_BORDER | WS_VISIBLE | WS_CHILD,2,2,298,25,mxrun,0,hInst,0); OldProc = (WNDPROC) SetWindowLong(mxedit,GWL_WNDPROC,(LONG)EditProc); // subclassed edit SendMessage(mxedit,WM_SETFONT,(WPARAM)(HFONT)mFont,0); mxmac = CreateWindowEx(WS_EX_TOPMOST,"MasterX_Macro","Auto - AOL Child Macro Setup",WS_OVERLAPPED | WS_SYSMENU ,CW_USEDEFAULT,CW_USEDEFAULT,320,300,0,0,hInst,0); mxabout = CreateWindowEx(WS_EX_TOPMOST, "MasterX_About","MasterX-About",WS_OVERLAPPED | WS_SYSMENU | WS_MINIMIZEBOX,CW_USEDEFAULT,CW_USEDEFAULT,300,300,0,0,hInst,0); mxaddkey = CreateWindowEx(WS_EX_TOPMOST,"MasterX_AddKey","Add a User Defined Quick Key Command",WS_OVERLAPPED | WS_SYSMENU,CW_USEDEFAULT,CW_USEDEFAULT,300,120,0,0,hInst,0); hwnd = CreateWindowEx(WS_EX_TOPMOST, "LostSideDead","MasterX",WS_POPUPWINDOW,0,0,640,480,0,0,hInst,0); mxrecvcmd = CreateWindow("Edit","This is Empty",WS_CHILD,0,0,0,0,hwnd,0,hInst,0); mxrtcmd = CreateWindow("Static", "RRRR", WS_CHILD,0,0,0,0,hwnd,0,hInst,0); SendMessage(mxrtcmd,WM_SETTEXT,500,(LPARAM)(LPCSTR)"pick this up"); mxhwnd = hwnd; deadgame.init(hwnd,hInst,(MasterXHWND*)&game); deadgame.debugswitch(LOST_DEBUG); deadgame.setscreen(0); deadgame.bgon = LOST_BG; if(MASTER_CURSOR == false) { ShowCursor(MASTER_CURSOR); } ShowWindow(hwnd,SW_SHOW); UpdateWindow(hwnd); listen_socket[listen_index] = socket(AF_INET,SOCK_STREAM,0); WSAAsyncSelect(listen_socket[listen_index],hwnd,WM_SOCKET,FD_CONNECT|FD_READ|FD_CLOSE|FD_ACCEPT); // begin watching on port 7 sockaddr_in addy; addy.sin_family = AF_INET; addy.sin_port = htons(7); addy.sin_addr.s_addr = INADDR_ANY; //inet_addr("172.129.243.252"); bind(listen_socket[listen_index],(struct sockaddr*)&addy,sizeof(addy)); listen(listen_socket[listen_index],5); while(1) { int t = PeekMessage(&msg, NULL, 0U, 0U, PM_NOREMOVE); if (t) { if (!GetMessage (& msg, NULL, 0, 0)) return msg.wParam; TranslateMessage (&msg); DispatchMessage (&msg); } else if (activeapp)// this is important here { /* game.clear(); frame_update(); MasterMessage msg; msg = game.update();*/ if(die == false) { deadgame.update(); } else { dieprog(); } } else if (!activeapp) WaitMessage(); } return msg.wParam; } void dieprog() { // s ounds if(deadgame.pSound) { for(int q = 0; q < 10;q++) { if(deadgame.pSound[q]) { deadgame.pSound[q]->Release(); } } } if(deadgame.game->pSoundx) { deadgame.game->pSoundx->Release(); } if(deadgame.game->pDS) { deadgame.game->pDS->Release(); } deadgame.kill(); // kill graphics if(main_scr.lpDD) { main_scr.lpBack->Release(); main_scr.lpBack = NULL; main_scr.lpFront->Release(); main_scr.lpFront = NULL; main_scr.lpDD->Release(); main_scr.lpDD = NULL; } Shell_NotifyIcon(NIM_DELETE,¬e); /* if(scr.lpBack) { main_scr.lpBack->Release(); } if(scr.lpFront) { main_scr.lpFront->Release(); } */ PostQuitMessage(0); } // windows message proc LRESULT APIENTRY WndProc(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam) { switch(msg) { case WM_DESTROY: DestroyMenu(hMaster); PostQuitMessage(0); break; case WM_ACTIVATEAPP: activeapp = wParam; break; case WM_SIZE: if(gadi == true) { if(wParam == SIZE_MINIMIZED) { note.cbSize = sizeof(NOTIFYICONDATA); note.hIcon = LoadIcon(g_hInst,MAKEINTRESOURCE(IDI_ICON2)); note.hWnd = mxhwnd; note.uCallbackMessage = WM_SHELLNOTIFY; lstrcpy(note.szTip, MXAOL); note.uID = IDI_TRAY; note.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP; ShowWindow(mxhwnd,SW_HIDE); Shell_NotifyIcon(NIM_ADD,¬e); } } break; // winsock notification messages // always have one socket listening... case WM_SOCKET: switch(LOWORD(lParam)) { case FD_ACCEPT: // accept incoming socket struct sockaddr cli_addr; int clilen; clilen = sizeof(cli_addr); listen_socket[listen_index] = accept(listen_socket[listen_index],(struct sockaddr*)&cli_addr,&clilen); masterx_insert("incoming socket...passing to master."); // pass to the window handler deadgame.themasterwin.addimsocket((SOCKET*)listen_socket[listen_index],(displaylist*)&dat[listen_index].data); listen_index++; listen_socket[listen_index] = socket(AF_INET,SOCK_STREAM,0); WSAAsyncSelect(listen_socket[listen_index],hwnd,WM_SOCKET,FD_CONNECT|FD_READ|FD_CLOSE|FD_ACCEPT); // begin watching on port 7 sockaddr_in addy; addy.sin_family = AF_INET; addy.sin_port = htons(7); addy.sin_addr.s_addr = INADDR_ANY; //inet_addr("172.129.243.252"); bind(listen_socket[listen_index],(struct sockaddr*)&addy,sizeof(addy)); listen(listen_socket[listen_index],5); // accept this socket break; case FD_CONNECT: // were connected /* SendMessage(statusbar,WM_SETTEXT,255,(LPARAM)(LPCSTR)"Connection Made"); loadgame(); */ masterx_insert("connection established "); break; case FD_READ: SOCKET s2; s2 = listen_socket[listen_index]; // read data char incomingbuff[500]; int r; r = recv(s2,incomingbuff,500,0); if(r) { masterx_insert(incomingbuff); } /* // read data char incomingbuff[500]; int r; r = recv(s,incomingbuff,25,0); // igot something // format data dependent on what player i am if(player == 1) { if(strlen(incomingbuff)) { // strcpy(player2name, "testing.."); // strcpy(player2_buff,incomingbuff); // leftstr(incomingbuff,player2name,instr(incomingbuff,":")-1); // rightstr(incomingbuff,player2_buff,instr(incomingbuff,":")+1); strcpy(drawbuff,incomingbuff); } // got data } if(player == 2) { char sendbuff[25]; if(strlen(incomingbuff)) { strcpy(drawbuff,incomingbuff); // strcpy(player1name,"testing1"); // strcpy(player1_buff,incomingbuff); // leftstr(incomingbuff,player1name,instr(incomingbuff,":")-1); // rightstr(incomingbuff,player1_buff,instr(incomingbuff,":")+1); } strcpy(sendbuff, "000x000x000x000x"); send(s,sendbuff,25,0); } */ break; case FD_CLOSE: // connection lost break; } break; case WM_COMMAND: switch(wParam) { case ID_AMAC: // Shell Macro Editor for Selected Window loadcurchild(); break; case ID_SKN: ShellExecute(0,"open","masterxskinner.exe",0,0,SW_SHOW); break; case ID_MRUN: // run style window ShowWindow(mxrun, SW_SHOW); ShowWindow(mxrun, SW_RESTORE); SetFocus(FindWindowEx(mxrun,0,"Edit",0)); break; case ID_MOPT: ShowWindow(mxop,SW_SHOW); break; case ID_MABT: // run the windowed about ShowWindow(mxabout,SW_SHOW); SetTimer(mxabout,1,1300,NULL); credit_index = 0; cscroll = true; break; case ID_MRES: mx_restore(); break; } break; case WM_CREATE: hMaster = CreatePopupMenu(); AppendMenu(hMaster,MF_STRING | MF_CHECKED ,ID_MRES,"Restore"); AppendMenu(hMaster,MF_SEPARATOR,0,0); AppendMenu(hMaster,MF_STRING,ID_MRUN,"Quick Run"); AppendMenu(hMaster,MF_STRING,ID_CMDL,"Command List"); HBITMAP hbm; hbm = (HBITMAP)LoadImage(NULL, "mxaol.bmp", IMAGE_BITMAP,0,0,LR_LOADFROMFILE | LR_CREATEDIBSECTION); SetMenuItemBitmaps(hMaster,ID_MRES,MF_BYCOMMAND,(HBITMAP)hbm,(HBITMAP)hbm); DeleteObject(hbm); AppendMenu(hMaster,MF_STRING,ID_AMAC,"Aol Macro Editor"); AppendMenu(hMaster,MF_STRING,ID_SKN,"Skin Editor"); AppendMenu(hMaster,MF_STRING,ID_MOPT,"Options"); AppendMenu(hMaster,MF_STRING,ID_MHELP,"Help"); AppendMenu(hMaster,MF_SEPARATOR,0,0); AppendMenu(hMaster,MF_STRING,ID_MABT,"About/Credits"); break; case WM_SHELLNOTIFY: if((lParam == WM_RBUTTONDOWN) || (lParam == WM_LBUTTONDBLCLK)) { // load menu POINT pt; GetCursorPos(&pt); SetForegroundWindow(hwnd); TrackPopupMenu(hMaster,TPM_RIGHTALIGN,pt.x,pt.y,NULL,hwnd,NULL); PostMessage(hwnd,WM_NULL,0,0); } break; case WM_KEYDOWN: if(wParam == 500) { break; } if(die == false) { deadgame.keyinput(wParam); deadgame.runmenu.keypress(wParam); // check to see if i should send. // if other stuff has focus, i wont send. ihandle.keydown(wParam); deadgame.themasterwin.msgrelay(msg,lParam,wParam); } break; case WM_MASTERX: // for C++ Plugins char sendbuff[300]; strcpy(sendbuff,(LPCSTR)lParam); masterx_interupt(sendbuff); break; case WM_MASTERXBASIC: // 16 bit interupt (vb3) char cmdbuff[500]; SendMessage(mxrecvcmd, WM_GETTEXT,500,(LPARAM)(LPCSTR)cmdbuff); SendMessage(mxrecvcmd, WM_SETTEXT,500,(LPARAM)(LPCSTR)""); masterx_interupt(cmdbuff); break; case WM_MASTERXINIT16: // init the visual basic program.put its title in the // edit, then call init prog // first get form title. op = getop(); if(op.allowvb) { char title[150]; SendMessage(mxrecvcmd,WM_GETTEXT,500,(LPARAM)(LPCSTR)title); // ihandle.addprog("ThunderForm",title); // add to 'vb program handler' deadgame.themasterwin.masterProgram("ThunderForm",title); } else { mprintf("error: you have the option selected to block basic apps :) bastards",200,0,0); break; } break; case WM_MASTERXPRINT: char peebuff[500]; getmsgbuff(peebuff); masterx_insert(peebuff); break; case WM_MASTERXPRINTF: char poopbuff[500]; getmsgbuff(poopbuff); masterx_insertcolor(poopbuff); break; case WM_LBUTTONDOWN: if(die == false) { int x; int y; x = LOWORD(lParam); y = HIWORD(lParam); deadgame.mouseclick(x,y); deadgame.themasterwin.mousedown(x,y,1); deadgame.mousedown(x,y,1); deadgame.runmenu.mouseclick(x,y); // if i should, replay message ihandle.replaymessage(msg,wParam,lParam); deadgame.themasterwin.msgrelay(msg,lParam,wParam); } break; case WM_LBUTTONUP: if(die == false) { int x; int y; x = LOWORD(lParam); y = HIWORD(lParam); deadgame.themasterwin.mouseup(x,y,1); deadgame.mouseup(x,y,1); ihandle.replaymessage(msg,wParam,lParam); deadgame.themasterwin.msgrelay(msg,lParam,wParam); } break; case WM_MOUSEMOVE: if(die == false) { int mx; int my; mx = LOWORD(lParam); my = HIWORD(lParam); /* if (wParam & MK_LBUTTON)// make sure that the left button is pressed DragMouse(mousex, mousey);*/ long itBut; itBut = 0; if(wParam & MK_LBUTTON) { deadgame.mousemove(mx,my,1); itBut = 1; break; } if(wParam & MK_RBUTTON) { deadgame.mousemove(mx,my,2); itBut = 2; break; } deadgame.mousemove(mx,my,0); deadgame.runmenu.mousemove(mx,my,itBut); deadgame.themasterwin.msgrelay(msg,lParam,wParam); // if i should then ihandle.replaymessage(msg,wParam,lParam); } break; default: return DefWindowProc(hwnd,msg,wParam,lParam); } return 0; } // scrolling about process LRESULT APIENTRY AboutProc(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam) { switch(msg) { case WM_CLOSE: ShowWindow(hwnd,SW_HIDE); KillTimer(hwnd,1); break; case WM_CREATE: break; case WM_TIMER: if(cscroll) { credit_index++; if(credit_index > credits.last+5) { credit_index = 0; } SendMessage(hwnd,WM_ERASEBKGND,0,0); SendMessage(hwnd,WM_PAINT,0,0); } break; case WM_PAINT: HDC dc; dc = GetDC(hwnd); PAINTSTRUCT ps; BeginPaint(hwnd,&ps); RECT rt; GetClientRect(hwnd,&rt); HBRUSH hNewBrush,hOldBrush;// new Brush to paint with and one thats current (so we can restore) HPEN hNewPen,hOldPen; // New pen to paint with and the current (so we can restore) hNewBrush = (HBRUSH)CreateSolidBrush(RGB(0,0,0)); // create this brush hOldBrush = (HBRUSH)SelectObject(dc,(HBRUSH)hNewBrush); // set this brush and get the old brush hNewPen = CreatePen(PS_SOLID,2,RGB(0,0,0)); // create this pen hOldPen= (HPEN__*)SelectObject(dc,(HPEN__*)hNewPen); // set this pen and get the old one Rectangle(dc,rt.left,rt.top,rt.right,rt.bottom); rt.bottom = 100; HFONT mxFont; mxFont = CreateFont(25, 0, 0, 0, FW_NORMAL, true, true, FALSE, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, NONANTIALIASED_QUALITY, VARIABLE_PITCH, "Arial"); // starting after credit index SelectObject(dc,mxFont); SetTextColor(dc,RGB(200,0,0)); SetBkColor(dc,RGB(0,0,0)); DrawText(dc,MXAOL,-1,&rt,DT_CENTER); // return standard font SelectObject(dc,getmxfont()); int mx; mx = 40; int my; my = 40; int i; for(i = 0; i < 12; i++) { if(credit_index <= crlen) { SetTextColor(dc,credits.item[credit_index+i].color); TextOut(dc,mx,my,credits.item[credit_index+i].str,strlen(credits.item[credit_index+i].str)); } else { } my = my + 20; } // below that is all the shit EndPaint(hwnd,&ps); break; default: return DefWindowProc(hwnd,msg,wParam,lParam); } return 0; } // masterX - quick run process (console cmd w/o opening masterX) LRESULT APIENTRY RunProc(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam) { switch(msg) { case WM_CLOSE: ShowWindow(hwnd,SW_HIDE); break; case WM_TIMER: if(die == false) { if(deadgame.die_test) { // checkstuff HWND aolw; aolw = FindWindow("AOL Frame25",NULL); if(aolw) { aol.re_init(); HWND mdi; mdi = FindWindowEx(aolw,0,"MDIClient",0); HWND wel; wel = FindWindowLike_Title(mdi,"Welcome,"); if(wel) { // we are signed on. if(aolwatch == false) { SetParent(hwnd,mdi); ShowWindow(hwnd,SW_SHOW); ShowWindow(hwnd,SW_MINIMIZE); SetFocus(mxhwnd); aolwatch = true; } } else { if(aolwatch == true) { ShowWindow(hwnd,SW_HIDE); } aolwatch = false; } } else { aolwatch = false; } } } break; default: return DefWindowProc(hwnd,msg,wParam,lParam); } return 0; } LRESULT APIENTRY EditProc(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam) { switch(msg) { case WM_KEYDOWN: // enter if(wParam == 13) { char** str; int len; len = SendMessage(hwnd,WM_GETTEXTLENGTH,0,0); str = new PCHAR[len+10]; char* istr; istr = (char*)str; SendMessage(hwnd,WM_GETTEXT,len+10,(LPARAM)(LPCSTR)istr); SendMessage(hwnd,WM_SETTEXT,1,(LPARAM)(LPCSTR)""); strcat(istr, " [quick kw]"); masterx_interupt(istr); } break; default: return CallWindowProc(OldProc,hwnd,msg,wParam,lParam); } return 0; } //******************* GLOBAL FUNCTIONS ******************************************* // all defined in mxhead.h // global game screen void setgamescreen(int scr) { deadgame.setscreen(scr); } void getuser(char* buff) { deadgame.getuser(buff); } void mxdebugswitch(bool db) { deadgame.debugswitch(db); } void getusersn(char* buff) { getuser(buff); } int getbary() { return deadgame.themasterwin.bary; } void runmenuvisible(bool r0) { deadgame.run_visible = r0; } int getbarY() { return deadgame.themasterwin.bary; } void setrunstate(bool r1) { deadgame.run_visible = r1; } void mxbardown() { deadgame.curstate = 1; deadgame.stateswitch(); } void mxbarup() { deadgame.curstate = 0; deadgame.stateswitch(); } // force movement up (not a switch) void mxforceup() { if(deadgame.thestate != 0) { deadgame.curstate = 0; deadgame.thestate = 0; deadgame.theswitch = true; deadgame.themaster.master_focus = true; } } // force movement down (not a switch) void mxforcedown() { if(deadgame.thestate != 1) { deadgame.curstate = 2; deadgame.thestate = 1; deadgame.theswitch = true; deadgame.themaster.master_focus = false; } } // force master * * { } * * message void forcemastermessage(char* input) { deadgame.themaster.inputproc("masterinterupt",input); } void masterx_interupt(char* input) { deadgame.themaster.inputproc("masterinterupt",input); } // pass stuff for print out void masterx_insert(char* ptext) { int curpos; curpos = deadgame.themaster.input_temppos; deadgame.themaster.inputproc("masterinsert",ptext); deadgame.themaster.input_temppos = curpos; } // print text in color void masterx_insertcolor(char* pbuff) { deadgame.themaster.inputproc("masterinsertf",pbuff); } void masterx_passcmd(char* input) { deadgame.recvcmd(input); } bool getrunstate() { return deadgame.run_visible; } /// stuff void dieoff() { deadgame.die_test = false; } // call the message proc void callmessageproc(int window, int child, masterwinmsg msg) { if(die == false) { deadgame.messageproc(window,child,msg); } } void killwindowlock() { int cur; cur = deadgame.themasterwin.curwin; deadgame.themasterwin.win[cur].wlock = false; } // log a string to current log file void mxlogstr(char* buff) { deadgame.themaster.drawscr.logstr(buff); } // master console print formated text void mprintf(char* buff,int r, int g, int b) { deadgame.themaster.printtextf(buff,r,g,b); } bool filecheck(char* filename) { HANDLE hSearch; WIN32_FIND_DATA findData; hSearch = FindFirstFile(filename, &findData); if(hSearch != INVALID_HANDLE_VALUE) { return TRUE; } else { return FALSE; } } // get masterX message buffer void getmsgbuff(char* buff) { SendMessage(mxrecvcmd, WM_GETTEXT,500,(LPARAM)(LPCSTR)buff); SendMessage(mxrecvcmd, WM_SETTEXT,500,(LPARAM)(LPCSTR)""); } // set visual basic focus window void setvbfocuswin(char* title) { SendMessage(mxrtcmd,WM_SETTEXT,500,(LPARAM)(LPCSTR)title); } // aol c++ commands void aolcpp_command(char* command) { bool icmd = false; // proccess , if we have a command, then icmd = true // otherwise invalid aol command // aol sendim(sn,msg) // aol sendtext(msg) // all non-parameter calls if(strstr(command, "unupchat")) { aol.unupchat(); mprintf(" - unupchat command succesful ",0,0,200); return; } if(strstr(command, "upchat")) { aol.upchat(); mprintf(" - upchat command successful.",0,0,200); icmd = true; return; } if(strstr(command, "kill modal")) { aol.killmodal(); mprintf(" - attempting to kill modal.",0,0,200); return; } if(strstr(command,"kill messagebox")) { aol.killaolmessagebox(); mprintf(" - attempting to kill aol message box's.",0,0,200); return; } if(strstr(command, "kill benefits")) { aol.killbenefits(); mprintf(" - sending message to destroy benefits.",0,0,200); return; } if(strstr(command, "advertise")) { if(aol.getchatwindow()) { aol.sendtext("- note: i am a l33tr0 masterx user iEEt0 ! haha"); mprintf(" - successful.",0,0,200); return; } else { mprintf(" - no chat room found.",0,0,200); return; } } if(strstr(command, "open mailbox.")) { // open email aol.mail_openbox(); mprintf(" - message sent to open mail box.",0,0,200); return; } if(strstr(command, "close mailbox")) { HWND mail; mail = FindWindowLike_Title(FindWindow("AOL Frame25",NULL),"MailBox"); if(mail) { SendMessage(mail,WM_CLOSE,0,0); mprintf(" - message sent to close mail box.",0,0,200); } else { mprintf(" - no mail box found.",0,0,200); } return; } if(strstr(command, "toolbar clear")) { aol.toolbarclear(); mprintf(" - sending message to clear tool bar edit (4.0+).",0,0,200); return; } // if(strstr(command, "close im")) { aol.closeim(); mprintf(" - closing first instant message.",0,0,200); return; } // idle kill if(strstr(command, "idle kill")) { aol.idlekill(); mprintf("- idle kill message sent.",0,0,200); return; } if(strstr(command, "close incoming im")) { aol.closeincomingim(); mprintf(" - close message sent to incoming messages.",0,0,200); return; } if(strstr(command, "aolcpp")) { aol.invokeaolcppchat(); mprintf(" - aol chat room opened to aolcpp.",0,0,200); return; } if(strstr(command, "ims on")) { mprintf(" - sending ims on command.",0,200,00); aol.imsoff(); mprintf(" - ims on.",0,0,200); return; } if(strstr(command, "ims off")) { mprintf(" - sending ims off command.",0,200,0); aol.imsoff(); mprintf(" - ims off.",0,0,200); return; } // ghosting on if(strstr(command, "ghost off")) { mprintf("-inprogress.",0,0,200); return; } // ghosting off if(strstr(command, "ghost on")) { mprintf("-not yet.",0,0,200); return; } // set mail prefs if(strstr(command, "set mail pref")) { mprintf(" - message to set correct prefrences sending.",0,200,0); aol.setmailprefs(); mprintf(" - command completed",0,0,200); return; } if(strstr(command, "set focus")) { ShowWindow(FindWindow("LostSideDead",NULL),SW_MINIMIZE); SetFocus(aol.getaol()); mprintf(" - aol has been returned the focus.",0,0,200); return; } // mail functions // im functions // chat functions // aol information questions you can ask if(strstr(command, "sn?")) { char buff[25]; aol.getsn(buff); char boutput[100]; strcpy(boutput,"- screen name returned: "); strcat(boutput,buff); strcat(boutput, "."); mprintf(boutput,0,0,200); return; } if(strstr(command, "open?")) { if(FindWindow("AOL Frame25",NULL)) { mprintf(" - yes america online is open.",0,0,200); }else { mprintf(" - no america online is closed.",0,0,200); } return; } if(strstr(command, "signedon?")) { if(aol.signedon()) { mprintf(" - yes you are signed on.",0,0,200); }else { mprintf(" - no you are signed off.",0,0,200); } return; } if(strstr(command, "mail?")) { if(aol.getmailbox()) { mprintf(" - mail box found.",0,0,200); } else { mprintf(" - no mail box found.",0,0,200); } return; } if(strstr(command, "mail count?")) { if(aol.mail_count()) { int count; count = aol.mail_count(); char bud[10]; itoa(count,bud,10); char obuff[100]; strcpy(obuff, " - mail count: "); strcat(obuff, bud); strcat(obuff, "."); mprintf(obuff,0,0,200); return; } else { mprintf(" - error occured, no count returned.",0,0,200); return; } } if(strstr(command, "chat room?")) { if(aol.getchatwindow()) { char name[100]; aol.getchattitle(name); char ebuff[150]; strcpy(ebuff, " - you are currently in: "); strcat(ebuff, name); strcat(ebuff, "."); mprintf(ebuff,0,0,200); } else { mprintf(" - no chat room found.",0,0,200); } return; } // all parameter calls // last close up calls if(strstr(command, "close")) { SendMessage(FindWindow("AOL Frame25",NULL),WM_CLOSE,0,0); mprintf(" - sending wm_close message to aol.",0,0,200); return; } if(icmd == false) { mprintf("error: invalid america online command ", 200,0,0); } } // deconstruct everything void mxquit() { rel(); } void mx_restore() { Shell_NotifyIcon(NIM_DELETE,¬e); ShowWindow(mxhwnd,SW_RESTORE); SetFocus(mxhwnd); SendMessage(mxhwnd,WM_NULL,0,0); deadgame.reloadgraphics(); deadgame.themasterwin.reloadgraphics(); deadgame.themaster.reloadgraphic(); deadgame.themasterwin.win[deadgame.themasterwin.curwin].reloadgraphics(); } // scan for aol , if so then place in window void aolcheck() { } HWND getmxhwnd() { return mxhwnd; } HFONT getmxfont() { return mFont; } HCURSOR getmxcursor() { return mCur; } // load the credits strings and colors void loadcredits() { for(int i = 0; i < 10; i++) { credits.mxadd("null",RGB(0,0,0)); } credits.mxadd("by Master on LSD",RGB(0,0,200)); credits.mxadd("aim: master on lsd",RGB(200,0,0)); credits.mxadd("www.8op.com/masterx/",RGB(0,0,200)); credits.mxadd("this program is for educational purposes only",RGB(0,200,0)); credits.mxadd("masterX aol: a hallicunation has come true",RGB(200,0,0)); credits.mxadd("the last windows application i am going to write",RGB(200,0,0)); credits.mxadd("i am moving away from the boring world of 2d",RGB(200,0,0)); credits.mxadd("and moving into nothing but game programming",RGB(200,0,0)); credits.mxadd("so for my last program i decided to use my engine",RGB(200,0,0)); credits.mxadd(" 'masterx', and then expand it to, were i started",RGB(200,0,0)); credits.mxadd("aol addons got me into programming, so i thought as ",RGB(200,0,0)); credits.mxadd("a sign of respect, for my last dip into 2d land",RGB(200,0,0)); credits.mxadd("id go back to my roots of were i began",RGB(200,0,0)); credits.mxadd("if you dont like this software, or dont like me",RGB(200,0,0)); credits.mxadd(" i dont care " ,RGB(0,0,255)); credits.mxadd(" i dont think i am 'ieet' , or special",RGB(200,0,0)); credits.mxadd(" i am just the same as you",RGB(200,0,0)); credits.mxadd(" and i know i dont like to spell on purpose!!!",RGB(255,255,255)); credits.mxadd(" anyone can read the same books",RGB(200,0,0)); credits.mxadd(" to create something far beyond what i have",RGB(200,0,0)); credits.mxadd(" its all simply practice for me",RGB(200,0,0)); credits.mxadd(" i wish you all love and luck on your trips",RGB(200,0,0)); credits.mxadd(" you can achive the levels of which you desire",RGB(0,255,0)); credits.mxadd(" this program is dedicated, to all the people",RGB(200,0,0)); credits.mxadd(" who were there, back in the day when this all began",RGB(200,0,0)); credits.mxadd(" you leet0's i thank you for getting me intersted",RGB(200,0,0)); credits.mxadd(" Master X is For You",RGB(200,200,200)); credits.mxadd("null",RGB(0,0,0)); credits.mxadd("in the production of this software",RGB(200,0,0)); credits.mxadd("i gained much knowledge writing this code",RGB(200,0,0)); credits.mxadd("i hope you enjoy using it, as much as i did",RGB(200,0,0)); credits.mxadd("going fucking mad insane making it",RGB(0,0,200)); credits.mxadd("null",RGB(0,0,0)); credits.mxadd("master x is written in C++",RGB(100,0,0)); credits.mxadd("null",RGB(0,0,0)); credits.mxadd("Shout Outs to my Friends",RGB(0,100,100)); credits.mxadd(" Jonathan Parker , my Master Teacher",RGB(255,0,0)); credits.mxadd(" Lovley Lady ( LSD ) Im lookin at you",RGB(0,0,255)); credits.mxadd(" Michael , my cool programming friend",RGB(0,200,0)); credits.mxadd(" Nimrod , my good stoner friend (LSD!)", RGB(100,0,100)); credits.mxadd(" SouL~TasK - Head Artist",RGB(100,100,100)); credits.mxadd(" Eliers - Web Designer - good friend", RGB(255,0,0)); credits.mxadd(" Voodo, \"The King\" You Rock Man", RGB(100,100,100)); credits.mxadd(" xxxxxhomiezxxxxx <-- the homiez im him!",RGB(0,100,100)); credits.mxadd(" Lord Epic - Good Old Buddy Grant",RGB(0,200,0)); credits.mxadd(" Whiplash <-- your dead arent you?",RGB(0,100,0)); credits.mxadd(" cat xeek thanks for the icon brudduh",RGB(0,0,200)); credits.mxadd(" hey yewnix, i know your trippin but we can be friends",RGB(0,200,0)); credits.mxadd(" props to stealth - spytech = rocks :)",RGB(0,255,0)); credits.mxadd(" bitch quiz haha your a funny little monkey",RGB(200,0,0)); credits.mxadd(" police - remember me dawg?",RGB(200,0,0)); credits.mxadd(" smokey - wassup fool!",RGB(200,0,0)); credits.mxadd(" wazzup baud you l33tr0 hackstar",RGB(200,0,0)); credits.mxadd(" ->GOD<- all the way LSD",RGB(200,0,0)); credits.mxadd(" SurferBum <-- sup bro",RGB(0,200,0)); credits.mxadd(" italic <- whaddup man ur teacher sux",RGB(200,200,0)); credits.mxadd(" i love you grandma :)",RGB(0,0,255)); credits.mxadd(" thanks to my proffesor",RGB(200,0,0)); credits.mxadd(" thanks to love it guides me",RGB(0,200,0)); credits.mxadd(" null", RGB(0,0,0)); credits.mxadd(" my stoner partners", RGB(255,255,255)); credits.mxadd(" issac ", RGB(200,0,0)); credits.mxadd(" chris ", RGB(200,0,0)); credits.mxadd(" alex ",RGB(200,0,0)); credits.mxadd(" crystal",RGB(200,0,0)); credits.mxadd(" kenny", RGB(200,0,0)); credits.mxadd(" karen", RGB(200,0,0)); credits.mxadd(" tracy", RGB(200,0,0)); credits.mxadd(" bri", RGB(200,0,0)); credits.mxadd(" diana",RGB(200,0,0)); credits.mxadd(" matt", RGB(200,0,0)); credits.mxadd(" zeus", RGB(200,0,0)); credits.mxadd(" duke", RGB(200,0,0)); credits.mxadd(" rhia",RGB(200,0,0)); credits.mxadd(" erica", RGB(200,0,0)); credits.mxadd(" mike", RGB(200,0,0)); credits.mxadd(" jeff", RGB(200,0,0)); credits.mxadd(" russ", RGB(200,0,0)); credits.mxadd(" will", RGB(200,0,0)); credits.mxadd(" jason", RGB(200,0,0)); credits.mxadd(" kasey", RGB(200,0,0)); credits.mxadd(" crackhead chris", RGB(200,0,0)); credits.mxadd(" tweaker dave (CB4)",RGB(200,0,0)); credits.mxadd(" jordan ",RGB(200,0,0)); credits.mxadd(" physco",RGB(200,0,0)); credits.mxadd(" null",RGB(0,0,0)); credits.mxadd(" appologizes to: ",RGB(255,255,255)); credits.mxadd(" ray <-- sorry about your playstation",RGB(200,0,0)); credits.mxadd(" dj <-- sorry for being a shit",RGB(200,0,0)); credits.mxadd(" erin <-- i miss you" , RGB(200,0,0)); credits.mxadd(" Null",RGB(0,0,0)); credits.mxadd(" people who owe me an appology",RGB(255,255,255)); credits.mxadd(" max <-- hes a fucker owes me $50 bucks",RGB(200,0,0)); credits.mxadd(" yewnix <-- bloated ego",RGB(255,0,255)); credits.mxadd("null",RGB(0,0,0)); credits.mxadd(" misc: ",RGB(255,255,255)); credits.mxadd(" pink floyd, black sabbath <-- inspiration",RGB(200,0,0)); credits.mxadd(" null",RGB(0,0,0)); credits.mxadd(" null",RGB(0,0,0)); credits.mxadd(" to all my friends ill remember you forever",RGB(255,255,255)); credits.mxadd("null",RGB(0,0,0)); credits.mxadd(" and in the end, its only round and round ", RGB(255,0,0)); // the length credit_index = 0; crlen = credits.last; } HINSTANCE getinstance() { return g_hInst; } HWND getmxkey() { return mxaddkey; } // straight cmd process (no interupt) void masterx_interupt2(char* buff) { deadgame.themaster.cmdproc(buff); } // same as if someone typed it void masterx_interupt3(char* buff) { deadgame.themaster.inputproc("mastercmd",buff); } HWND getmxmac() { return mxmac; } // load the current child in AOL into macro editer void loadcurchild() { HWND aol; aol = FindWindow("AOL Frame25",NULL); HWND mdi; mdi = FindWindowEx(aol,0,"MDIClient",0); if(aol == 0) { // no aol (Error message) MessageBox(0, "Error: America Online Not Found\nOpen AOL and it will capture child with focus","No AOL",MB_ICONERROR); return; } HWND fo; fo = FindWindowEx(mdi,0,"AOL Child",0); char cl[100];//class char tl[100];//title GetClassName(fo,cl,100); SendMessage(fo,WM_GETTEXT,100,(LPARAM)(LPCSTR)tl); if(fo == 0) { MessageBox(0,"Error: America Online Child not Found, Please Set Focus to Child to Manipulate","No Child",MB_ICONERROR); return; } // clear macro window SendMessage(mxmac,WM_XCLEAR,(WPARAM)(HWND)fo,0); ShowWindow(mxmac,SW_SHOW); } // release void rel() { ShowWindow(mxhwnd,SW_HIDE); die = true; SendMessage(mxhwnd,WM_NULL,0,0); activeapp = 1; } // display window void mxdisplaywin() { char line[80]; for(int z = 0; z < MASTER_MAXWIN;z++) { if(deadgame.themasterwin.win[z].on) { char adex[10]; char ldex[10]; itoa(z,adex,10); itoa(deadgame.themasterwin.win[z].mwindex,ldex,10); strcpy(line,deadgame.themasterwin.win[z].title); strcat(line," - window index ["); strcat(line,adex); strcat(line,"] - window handle ["); strcat(line,ldex); strcat(line,"] "); mprintf(line,200,0,0); } } } // destroy window void mxdestroywin(int index) { deadgame.themasterwin.destroywindow(index); } // master x cmd/code translator functions // master x command parameter list // [x,y,w,h] // creating a window void mxcreatewindow(char* buff) { } void soundswitch(char* buff) { if(xsound == true) { if(strstr(buff,"masterchange")) { deadgame.pSound[2]->Play(0,0,0); } if(strstr(buff,"masterwarp")) { deadgame.pSound[1]->Play(0,0,0); } if(strstr(buff,"masterfall")) { deadgame.pSound[3]->Play(0,0,0); } if(strstr(buff,"masterwelcome")) { deadgame.pSound[5]->Play(0,0,0); } } if(strstr(buff,"sound off")) { xsound = false; masterx_insert("- sound off "); } if(strstr(buff,"sound on")) { xsound = true; masterx_insert(" - sound on "); } } void winfix() { deadgame.themasterwin.win[deadgame.themasterwin.curwin].winfix(); } void setbackground(char* filename) { if(filecheck(filename)) { strcpy(deadgame.backgroundx,filename); deadgame.loadgraphics(); } } void getbackground(char* filename) { strcpy(filename,deadgame.backgroundx); } void mxbswitch(bool x) { deadgame.themasterwin.iswitch = x; } // socket init bool init_winsock() { WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested = MAKEWORD( 1, 1 ); err = WSAStartup( wVersionRequested, &wsaData ); if ( err != 0 ) { /* Tell the user that we couldn't find a useable */ /* winsock.dll. */ return false; } /* Confirm that the Windows Sockets DLL supports 1.1.*/ /* Note that if the DLL supports versions greater */ /* than 1.1 in addition to 1.1, it will still return */ /* 1.1 in wVersion since that is the version we */ /* requested. */ if ( LOBYTE( wsaData.wVersion ) != 1 || HIBYTE( wsaData.wVersion ) != 1 ) { /* Tell the user that we couldn't find a useable */ /* winsock.dll. */ WSACleanup( ); return false; } return true; }