/* * Plugin of miranda IM(ICQ) for Communicating with users of the XFire Network. * * Copyright (C) 2010 by * dufte * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * * * Miranda ICQ: the free icq client for MS Windows * Copyright (C) 2000-2008 Richard Hughes, Roland Rabien & Tristan Van de Vreede * */ /* Beinhaltet alle Funktionen und Informationen des Spiels */ #ifndef _XFIRE_GAME #define _XFIRE_GAME #include "Xfire_base.h" #include using namespace std; //externe funktion die das spielstarten steuern extern INT_PTR StartGame(WPARAM wParam,LPARAM lParam,LPARAM fParam); class Xfire_game : public Xfire_base { public: //id des spiels unsigned int id; //handle des menuitems HANDLE menuhandle; //spiel soll bei der detection übersprungen werden BOOL skip; //voicehat? BOOL voicechat; //es soll kein icq und co status gesetzt werden BOOL noicqstatus; //handelt es sich um ein "custom" spiel BOOL custom; //soll ein spez. status gesetzt werden BOOL setstatusmsg; //iconhandle von miranda HANDLE iconhandl; //hicon vom icon des spiels HICON hicon; //dont show in startmenü BOOL notinstartmenu; //pfad des spiels wenn es laufen sollte char* path; //startparameter des spiels char* launchparams; //netzwerkparameter char* networkparams; //username parameter char* userparams; //passwort paramter char* pwparams; //mustcontain parameter char* mustcontain; //notcontain parameter char* notcontain; //spielname char* name; //extraparameter char* extraparams; //custom gamename char* customgamename; //custom statusmsg for xfire char* statusmsg; //mehrere pfade vector mpath; //zu sende gameid signed short send_gameid; //konstruktor Xfire_game() { //vars leer setzen path=NULL; launchparams=NULL; networkparams=NULL; userparams=NULL; pwparams=NULL; mustcontain=NULL; notcontain=NULL; name=NULL; menuhandle=NULL; iconhandl=NULL; hicon=NULL; extraparams=NULL; customgamename=NULL; statusmsg=NULL; id=skip=noicqstatus=custom=setstatusmsg=send_gameid=notinstartmenu=voicechat=0; } //dekonstruktor ~Xfire_game() { //entferne dyn arrays if(path) { delete[] path; path=NULL; } if(launchparams) { delete[] launchparams; launchparams=NULL; } if(networkparams) { delete[] networkparams; networkparams=NULL; } if(userparams) { delete[] userparams; userparams=NULL; } if(pwparams) { delete[] pwparams; pwparams=NULL; } if(mustcontain) { delete[] mustcontain; mustcontain=NULL; } if(notcontain) { delete[] notcontain; notcontain=NULL; } if(name) { delete[] name; name=NULL; } if(extraparams) { delete[] extraparams; extraparams=NULL; } if(customgamename) { delete[] customgamename; customgamename=NULL; } if(statusmsg) { delete[] statusmsg; statusmsg=NULL; } for(unsigned int i = 0 ; i < mpath.size() ; i ++) { if(mpath.at(i)!=NULL) delete mpath.at(i); } mpath.clear(); remoteMenuitem(); } //funktionen void readFromDB(unsigned dbid); void writeToDB(unsigned dbid); void createMenuitem(unsigned int pos,int dbid=-1); void refreshMenuitem(); void remoteMenuitem(); void setNameandIcon(); void setIcon(HICON hicon,HANDLE handle); BOOL checkpath(PROCESSENTRY32* processInfo); BOOL start_game(char*ip=NULL,unsigned int port=0,char*pw=NULL); BOOL haveExtraGameArgs(); }; #endif