From: Laszlo T. <ave...@us...> - 2004-11-24 21:47:35
|
Update of /cvsroot/gemrb/gemrb/gemrb/plugins/Core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30125/Core Modified Files: ActorBlock.cpp GameControl.cpp GameControl.h GameScript.cpp Interface.cpp Map.cpp Log Message: fixed travel regions and centering on actor after a map change Index: Map.cpp =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/Core/Map.cpp,v retrieving revision 1.125 retrieving revision 1.126 diff -C2 -d -r1.125 -r1.126 *** Map.cpp 18 Nov 2004 19:42:46 -0000 1.125 --- Map.cpp 24 Nov 2004 21:47:22 -0000 1.126 *************** *** 334,338 **** Actor* actor = actors[i]; if (!actor) ! break; if (ip->Type == ST_PROXIMITY) { if (ip->outline->PointIn( actor->Pos )) { --- 334,338 ---- Actor* actor = actors[i]; if (!actor) ! continue; if (ip->Type == ST_PROXIMITY) { if (ip->outline->PointIn( actor->Pos )) { *************** *** 341,356 **** } ip->ExecuteScript( ip->Scripts[0] ); - ip->OnCreation = false; } else { //ST_TRAVEL //don't move if doing something else if(actor->GetNextAction()) ! break; if (ip->outline->PointIn( actor->Pos )) { UseExit(actor, ip); } } - break; } } //Blit the Map Animations --- 341,356 ---- } ip->ExecuteScript( ip->Scripts[0] ); } else { //ST_TRAVEL //don't move if doing something else if(actor->GetNextAction()) ! continue; if (ip->outline->PointIn( actor->Pos )) { + ip->LastEntered = actor; UseExit(actor, ip); } } } + ip->OnCreation = false; } //Blit the Map Animations Index: GameControl.cpp =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/Core/GameControl.cpp,v retrieving revision 1.177 retrieving revision 1.178 diff -C2 -d -r1.177 -r1.178 *** GameControl.cpp 19 Nov 2004 23:09:20 -0000 1.177 --- GameControl.cpp 24 Nov 2004 21:47:04 -0000 1.178 *************** *** 201,207 **** return; } ! // in HOW, the size can get negative; comparison to 32768 ! // is thanks to size being unsigned, grrr ! if (!Width || !Height || Width >= 32768 || Height >= 32768) { return; } --- 201,205 ---- return; } ! if (((int) Width) <=0 || ((int) Height) <= 0) { return; } *************** *** 1576,1579 **** --- 1574,1578 ---- int mi = core->GetGame()->LoadMap( pc->Area ); SetCurrentArea( mi ); + ScreenFlags|=SF_CENTERONACTOR; } //center on first selected actor *************** *** 1601,1602 **** --- 1600,1611 ---- } + void GameControl::SetScreenFlags(int value, int mode) + { + switch(mode) { + case BM_OR: ScreenFlags|=value; break; + case BM_NAND: ScreenFlags&=~value; break; + case BM_SET: ScreenFlags=value; break; + case BM_AND: ScreenFlags&=value; break; + case BM_XOR: ScreenFlags^=value; break; + } + } Index: GameScript.cpp =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/Core/GameScript.cpp,v retrieving revision 1.215 retrieving revision 1.216 diff -C2 -d -r1.215 -r1.216 *** GameScript.cpp 18 Nov 2004 19:42:45 -0000 1.215 --- GameScript.cpp 24 Nov 2004 21:47:05 -0000 1.216 *************** *** 6583,6586 **** --- 6583,6588 ---- actor->Orientation = face&(MAX_ORIENT-1); } + GameControl *gc=core->GetGameControl(); + gc->SetScreenFlags(SF_CENTERONACTOR,BM_OR); } Index: Interface.cpp =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/Core/Interface.cpp,v retrieving revision 1.241 retrieving revision 1.242 diff -C2 -d -r1.241 -r1.242 *** Interface.cpp 20 Nov 2004 10:39:58 -0000 1.241 --- Interface.cpp 24 Nov 2004 21:47:22 -0000 1.242 *************** *** 2286,2294 **** //make sure unsigned int is 32 bits slottypes = (SlotType *) malloc(SlotTypes * sizeof(SlotType) ); - /* - slotids = (ieDword *) malloc(SlotTypes * sizeof(ieDword) ); - slottips = (ieDword *) malloc(SlotTypes * sizeof(ieDword) ); - slotresrefs = (ieResRef *) malloc(SlotTypes * sizeof(ieResRef) ); - */ for (int i=0;i<SlotTypes;i++) { slottypes[i].slottype = (ieDword) strtol(st->QueryField(i,0),NULL,0 ); --- 2286,2289 ---- Index: ActorBlock.cpp =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/Core/ActorBlock.cpp,v retrieving revision 1.65 retrieving revision 1.66 diff -C2 -d -r1.65 -r1.66 *** ActorBlock.cpp 8 Nov 2004 19:09:58 -0000 1.65 --- ActorBlock.cpp 24 Nov 2004 21:47:04 -0000 1.66 *************** *** 761,764 **** --- 761,765 ---- TrapRemovalDifficulty ); printf( "Key: %s Dialog: %s\n", KeyResRef, DialogResRef ); + printf( "Active: %s\n", Active?"Yes":"No"); } Index: GameControl.h =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/Core/GameControl.h,v retrieving revision 1.53 retrieving revision 1.54 diff -C2 -d -r1.53 -r1.54 *** GameControl.h 13 Sep 2004 17:09:36 -0000 1.53 --- GameControl.h 24 Nov 2004 21:47:05 -0000 1.54 *************** *** 113,116 **** --- 113,117 ---- /** Special Key Press */ void OnSpecialKeyPress(unsigned char Key); + void SetScreenFlags(int value, int mode); private: void CalculateSelection(Point &p); |