From: Laszlo T. <ave...@us...> - 2005-03-19 16:16:08
|
Update of /cvsroot/gemrb/gemrb/gemrb/plugins/Core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5034/Core Modified Files: ActorBlock.cpp ActorBlock.h Button.cpp GameControl.cpp Interface.cpp MapControl.cpp TileMap.cpp TileMap.h Window.cpp Window.h WorldMap.cpp WorldMap.h WorldMapControl.cpp Log Message: Replaced cursor constants with symbols, fixed Worldmap (flags are not about travel time) Index: WorldMapControl.cpp =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/Core/WorldMapControl.cpp,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** WorldMapControl.cpp 23 Feb 2005 18:59:37 -0000 1.12 --- WorldMapControl.cpp 19 Mar 2005 16:15:58 -0000 1.13 *************** *** 146,150 **** { WorldMap* worldmap = core->GetWorldMap(); ! int nextCursor = 44; //this is the grabbing hand if (MouseIsDown) { --- 146,150 ---- { WorldMap* worldmap = core->GetWorldMap(); ! int nextCursor = IE_CURSOR_GRAB; if (MouseIsDown) { *************** *** 177,181 **** if ((*m)->Y > y) continue; if ((*m)->Y + h < y) continue; ! nextCursor = 0; //we are over an area! if(Area!=*m) { Area=*m; --- 177,181 ---- if ((*m)->Y > y) continue; if ((*m)->Y + h < y) continue; ! nextCursor = IE_CURSOR_NORMAL; if(Area!=*m) { Area=*m; *************** *** 192,196 **** void WorldMapControl::OnMouseLeave(unsigned short /*x*/, unsigned short /*y*/) { ! ( ( Window * ) Owner )->Cursor = 0; Area = NULL; } --- 192,196 ---- void WorldMapControl::OnMouseLeave(unsigned short /*x*/, unsigned short /*y*/) { ! ( ( Window * ) Owner )->Cursor = IE_CURSOR_NORMAL; Area = NULL; } Index: GameControl.cpp =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/Core/GameControl.cpp,v retrieving revision 1.201 retrieving revision 1.202 diff -C2 -d -r1.201 -r1.202 *** GameControl.cpp 16 Mar 2005 17:08:21 -0000 1.201 --- GameControl.cpp 19 Mar 2005 16:15:56 -0000 1.202 *************** *** 30,41 **** #include "Effect.h" - #define IE_CHEST_CURSOR 32 - #define DEBUG_SHOW_INFOPOINTS 0x01 #define DEBUG_SHOW_CONTAINERS 0x02 ! #define DEBUG_SHOW_DOORS DEBUG_SHOW_CONTAINERS #define DEBUG_SHOW_SEARCHMAP 0x04 #define DEBUG_SHOW_PALETTES 0x08 ! #define DEBUG_XXX 0x10 static Color cyan = { --- 30,39 ---- #include "Effect.h" #define DEBUG_SHOW_INFOPOINTS 0x01 #define DEBUG_SHOW_CONTAINERS 0x02 ! #define DEBUG_SHOW_DOORS DEBUG_SHOW_CONTAINERS #define DEBUG_SHOW_SEARCHMAP 0x04 #define DEBUG_SHOW_PALETTES 0x08 ! #define DEBUG_XXX 0x10 static Color cyan = { *************** *** 102,106 **** pfs.y = 0; InfoTextPalette = core->GetVideoDriver()->CreatePalette( white, black ); ! lastCursor = 0; moveX = moveY = 0; DebugFlags = 0; --- 100,104 ---- pfs.y = 0; InfoTextPalette = core->GetVideoDriver()->CreatePalette( white, black ); ! lastCursor = IE_CURSOR_NORMAL; moveX = moveY = 0; DebugFlags = 0; *************** *** 633,637 **** return; } ! int nextCursor = 0; lastMouseX = x; --- 631,635 ---- return; } ! int nextCursor = IE_CURSOR_NORMAL; lastMouseX = x; *************** *** 649,662 **** switch (area->GetBlocked( p ) & (PATH_MAP_PASSABLE|PATH_MAP_TRAVEL)) { case 0: ! nextCursor = 6; break; case PATH_MAP_PASSABLE: ! nextCursor = 4; break; case PATH_MAP_TRAVEL: case PATH_MAP_PASSABLE|PATH_MAP_TRAVEL: ! nextCursor = 34; break; } --- 647,660 ---- switch (area->GetBlocked( p ) & (PATH_MAP_PASSABLE|PATH_MAP_TRAVEL)) { case 0: ! nextCursor = IE_CURSOR_BLOCKED; break; case PATH_MAP_PASSABLE: ! nextCursor = IE_CURSOR_WALK; break; case PATH_MAP_TRAVEL: case PATH_MAP_PASSABLE|PATH_MAP_TRAVEL: ! nextCursor = IE_CURSOR_TRAVEL; break; } *************** *** 675,679 **** if (overDoor) { overDoor->Highlight = true; ! nextCursor = overDoor->Cursor; overDoor->outlineColor = cyan; } --- 673,681 ---- if (overDoor) { overDoor->Highlight = true; ! if (overDoor->Flags & DOOR_LOCKED) { ! nextCursor = IE_CURSOR_LOCK; ! } else { ! nextCursor = overDoor->Cursor; ! } overDoor->outlineColor = cyan; } *************** *** 686,693 **** overContainer->Highlight = true; if (overContainer->TrapDetected && overContainer->Trapped) { ! nextCursor = 38; overContainer->outlineColor = red; } else { ! nextCursor = 2; overContainer->outlineColor = cyan; } --- 688,701 ---- overContainer->Highlight = true; if (overContainer->TrapDetected && overContainer->Trapped) { ! nextCursor = IE_CURSOR_TRAP; overContainer->outlineColor = red; } else { ! if (overContainer->Flags & CONT_LOCKED) { ! nextCursor = IE_CURSOR_LOCK2; ! } else if (overContainer->Type==IE_CONTAINER_PILE) { ! nextCursor = IE_CURSOR_TAKE; ! } else { ! nextCursor = IE_CURSOR_CHEST; ! } overContainer->outlineColor = cyan; } *************** *** 714,726 **** case CHARMED: case EVILBUTGREEN: ! nextCursor = 0; break; case ENEMY: case GOODBUTRED: ! nextCursor = 12; break; default: ! nextCursor = 18; break; } --- 722,734 ---- case CHARMED: case EVILBUTGREEN: ! nextCursor = IE_CURSOR_NORMAL; break; case ENEMY: case GOODBUTRED: ! nextCursor = IE_CURSOR_ATTACK; break; default: ! nextCursor = IE_CURSOR_TALK; break; } *************** *** 895,899 **** actor->AddAction( GameScript::GenerateAction( Tmp, true ) ); //we clicked over a searchmap travel region ! if( ( ( Window * ) Owner )->Cursor == 34) { sprintf( Tmp, "NIDSpecial2()" ); actor->AddAction( GameScript::GenerateAction( Tmp, true ) ); --- 903,907 ---- actor->AddAction( GameScript::GenerateAction( Tmp, true ) ); //we clicked over a searchmap travel region ! if( ( ( Window * ) Owner )->Cursor == IE_CURSOR_TRAVEL) { sprintf( Tmp, "NIDSpecial2()" ); actor->AddAction( GameScript::GenerateAction( Tmp, true ) ); *************** *** 912,916 **** } //we clicked over a searchmap travel region ! if( ( ( Window * ) Owner )->Cursor == 34) { sprintf( Tmp, "NIDSpecial2()" ); actor->AddAction( GameScript::GenerateAction( Tmp, true ) ); --- 920,924 ---- } //we clicked over a searchmap travel region ! if( ( ( Window * ) Owner )->Cursor == IE_CURSOR_TRAVEL) { sprintf( Tmp, "NIDSpecial2()" ); actor->AddAction( GameScript::GenerateAction( Tmp, true ) ); Index: TileMap.cpp =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/Core/TileMap.cpp,v retrieving revision 1.41 retrieving revision 1.42 diff -C2 -d -r1.41 -r1.42 *** TileMap.cpp 16 Mar 2005 17:08:22 -0000 1.41 --- TileMap.cpp 19 Mar 2005 16:15:57 -0000 1.42 *************** *** 391,395 **** char heapname[32]; sprintf(heapname,"heap_%hd.%hd",position.x,position.y); ! Container *container = GetContainer(position,CN_PILE); if(!container) { tmp[0].x=position.x-5; --- 391,395 ---- char heapname[32]; sprintf(heapname,"heap_%hd.%hd",position.x,position.y); ! Container *container = GetContainer(position,IE_CONTAINER_PILE); if(!container) { tmp[0].x=position.x-5; *************** *** 402,406 **** tmp[3].y=position.y+5; Gem_Polygon* outline = new Gem_Polygon( tmp, 4 ); ! container = AddContainer(heapname,CN_HEAP, outline); container->Pos=position; } --- 402,406 ---- tmp[3].y=position.y+5; Gem_Polygon* outline = new Gem_Polygon( tmp, 4 ); ! container = AddContainer(heapname,IE_CONTAINER_PILE, outline); container->Pos=position; } Index: TileMap.h =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/Core/TileMap.h,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** TileMap.h 16 Mar 2005 17:08:22 -0000 1.30 --- TileMap.h 19 Mar 2005 16:15:57 -0000 1.31 *************** *** 27,33 **** #include "GameScript.h" - //container types - #define CN_PILE 0 - #ifdef WIN32 --- 27,30 ---- *************** *** 42,47 **** #endif ! //heap container type ! #define CN_HEAP 0 class GEM_EXPORT TileMap { --- 39,44 ---- #endif ! //special container types ! #define IE_CONTAINER_PILE 4 class GEM_EXPORT TileMap { Index: WorldMap.h =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/Core/WorldMap.h,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** WorldMap.h 26 Feb 2005 17:42:28 -0000 1.12 --- WorldMap.h 19 Mar 2005 16:15:58 -0000 1.13 *************** *** 82,86 **** char DestEntryPoint[32]; ieDword DistanceScale; ! ieDword Flags; ieResRef EncounterAreaResRef[5]; ieDword EncounterChance; --- 82,86 ---- char DestEntryPoint[32]; ieDword DistanceScale; ! ieDword DirectionFlags; //where will the player appear on dest. area ieResRef EncounterAreaResRef[5]; ieDword EncounterChance; Index: Button.cpp =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/Core/Button.cpp,v retrieving revision 1.83 retrieving revision 1.84 diff -C2 -d -r1.83 -r1.84 *** Button.cpp 18 Mar 2005 20:01:19 -0000 1.83 --- Button.cpp 19 Mar 2005 16:15:56 -0000 1.84 *************** *** 414,418 **** } ! ( ( Window * ) Owner )->Cursor = 0; } --- 414,418 ---- } ! ( ( Window * ) Owner )->Cursor = IE_CURSOR_NORMAL; } Index: MapControl.cpp =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/Core/MapControl.cpp,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** MapControl.cpp 5 Mar 2005 16:24:27 -0000 1.25 --- MapControl.cpp 19 Mar 2005 16:15:57 -0000 1.26 *************** *** 283,293 **** if (LinkedLabel) { LinkedLabel->SetText( "" ); - //this will erase the label (no idea why is it needed) - //( ( Window * ) Owner )->Invalidate(); } if (Value==MAP_SET_NOTE) { ! ( ( Window * ) Owner )->Cursor = 44; } else { ! ( ( Window * ) Owner )->Cursor = 0; } } --- 283,291 ---- if (LinkedLabel) { LinkedLabel->SetText( "" ); } if (Value==MAP_SET_NOTE) { ! ( ( Window * ) Owner )->Cursor = IE_CURSOR_GRAB; } else { ! ( ( Window * ) Owner )->Cursor = IE_CURSOR_NORMAL; } } *************** *** 296,300 **** void MapControl::OnMouseLeave(unsigned short /*x*/, unsigned short /*y*/) { ! ( ( Window * ) Owner )->Cursor = 0; } --- 294,298 ---- void MapControl::OnMouseLeave(unsigned short /*x*/, unsigned short /*y*/) { ! ( ( Window * ) Owner )->Cursor = IE_CURSOR_NORMAL; } Index: WorldMap.cpp =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/Core/WorldMap.cpp,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** WorldMap.cpp 15 Mar 2005 14:31:01 -0000 1.14 --- WorldMap.cpp 19 Mar 2005 16:15:58 -0000 1.15 *************** *** 154,158 **** ( (ae2->AreaStatus & WMP_ENTRY_WALKABLE) == WMP_ENTRY_WALKABLE) ) { ! mydistance += al->DistanceScale * al->Flags; if (Distances[al->AreaIndex] !=-1) { Distances[al->AreaIndex] = mydistance; --- 154,160 ---- ( (ae2->AreaStatus & WMP_ENTRY_WALKABLE) == WMP_ENTRY_WALKABLE) ) { ! //al->Flags is used for something else (entry direction?) ! //maybe if the area is not passable (but visible, then you can still check on directions it directly links to) ! mydistance += al->DistanceScale * 4; if (Distances[al->AreaIndex] !=-1) { Distances[al->AreaIndex] = mydistance; *************** *** 203,207 **** ( (ae2->AreaStatus & WMP_ENTRY_WALKABLE) == WMP_ENTRY_WALKABLE) ) { ! mydistance += al->DistanceScale * al->Flags; //nonexisting distance is the biggest! if ((unsigned) Distances[al->AreaIndex] > mydistance) { --- 205,210 ---- ( (ae2->AreaStatus & WMP_ENTRY_WALKABLE) == WMP_ENTRY_WALKABLE) ) { ! // al->Flags is the entry direction ! mydistance += al->DistanceScale * 4; //nonexisting distance is the biggest! if ((unsigned) Distances[al->AreaIndex] > mydistance) { Index: Window.h =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/Core/Window.h,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** Window.h 16 Mar 2005 01:42:57 -0000 1.18 --- Window.h 19 Mar 2005 16:15:58 -0000 1.19 *************** *** 54,57 **** --- 54,86 ---- #define WINDOW_BOUNDED 0x10 + // IE specific cursor types + #define IE_CURSOR_NORMAL 0 + #define IE_CURSOR_TAKE 2 //over pile type containers + #define IE_CURSOR_WALK 4 + #define IE_CURSOR_BLOCKED 6 + #define IE_CURSOR_USE 8 //never hardcoded + #define IE_CURSOR_WAIT 10 //hourglass + #define IE_CURSOR_ATTACK 12 + #define IE_CURSOR_SWAP 14 //dragging portraits + #define IE_CURSOR_DEFEND 16 + #define IE_CURSOR_TALK 18 + #define IE_CURSOR_CAST 20 //targeting with non weapon + #define IE_CURSOR_INFO 22 //never hardcoded + #define IE_CURSOR_LOCK 24 //locked door + #define IE_CURSOR_LOCK2 26 //locked container + #define IE_CURSOR_STAIR 28 //never hardcoded + #define IE_CURSOR_DOOR 30 //doors + #define IE_CURSOR_CHEST 32 + #define IE_CURSOR_TRAVEL 34 + #define IE_CURSOR_STEALTH 36 + #define IE_CURSOR_TRAP 38 + #define IE_CURSOR_PICK 40 //pickpocket + #define IE_CURSOR_PASS 42 //never hardcoded + #define IE_CURSOR_GRAB 44 + #define IE_CURSOR_WAY 46 //waypoint (not in PST) + #define IE_CURSOR_INFO2 46 //PST + #define IE_CURSOR_PORTAL 48 //PST + #define IE_CURSOR_STAIR2 50 //PST + #define IE_CURSOR_EXTRA 52 //PST class GEM_EXPORT Window { Index: Window.cpp =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/Core/Window.cpp,v retrieving revision 1.39 retrieving revision 1.40 diff -C2 -d -r1.39 -r1.40 *** Window.cpp 16 Mar 2005 01:42:57 -0000 1.39 --- Window.cpp 19 Mar 2005 16:15:58 -0000 1.40 *************** *** 42,46 **** Changed = true; Floating = false; ! Cursor = 0; DefaultControl = -1; --- 42,46 ---- Changed = true; Floating = false; ! Cursor = IE_CURSOR_NORMAL; DefaultControl = -1; Index: Interface.cpp =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/Core/Interface.cpp,v retrieving revision 1.283 retrieving revision 1.284 diff -C2 -d -r1.283 -r1.284 *** Interface.cpp 19 Mar 2005 15:44:53 -0000 1.283 --- Interface.cpp 19 Mar 2005 16:15:56 -0000 1.284 *************** *** 682,686 **** } FreeInterface( anim ); ! if (CursorCount<20) { printStatus("ERROR", LIGHT_RED ); return GEM_ERROR; --- 682,687 ---- } FreeInterface( anim ); ! // this is the last existing cursor type ! if (CursorCount<IE_CURSOR_WAY) { printStatus("ERROR", LIGHT_RED ); return GEM_ERROR; Index: ActorBlock.h =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/Core/ActorBlock.h,v retrieving revision 1.62 retrieving revision 1.63 diff -C2 -d -r1.62 -r1.63 *** ActorBlock.h 16 Mar 2005 17:08:21 -0000 1.62 --- ActorBlock.h 19 Mar 2005 16:15:56 -0000 1.63 *************** *** 191,194 **** --- 191,195 ---- bool IsOver(Point &Pos); void DrawOutline(); + void SetCursor(unsigned char CursorIndex); /** Gets the Dialog ResRef */ const char* GetDialog(void) const *************** *** 284,288 **** void SetPolygon(bool Open, Gem_Polygon* poly); bool IsOpen() const; - void SetCursor(unsigned char CursorIndex); void DebugDump(); }; --- 285,288 ---- Index: ActorBlock.cpp =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/Core/ActorBlock.cpp,v retrieving revision 1.78 retrieving revision 1.79 diff -C2 -d -r1.78 -r1.79 *** ActorBlock.cpp 16 Mar 2005 17:08:21 -0000 1.78 --- ActorBlock.cpp 19 Mar 2005 16:15:56 -0000 1.79 *************** *** 328,331 **** --- 328,332 ---- outline = NULL; Highlight = false; + Cursor = IE_CURSOR_NORMAL; } *************** *** 353,356 **** --- 354,362 ---- } + void Highlightable::SetCursor(unsigned char CursorIndex) + { + Cursor = CursorIndex; + } + /***************** * Moveble Class * *************** *** 521,525 **** closed_ib = NULL; cibcount = 0; - Cursor = 0; OpenSound[0] = 0; CloseSound[0] = 0; --- 527,530 ---- *************** *** 671,679 **** } - void Door::SetCursor(unsigned char CursorIndex) - { - Cursor = CursorIndex; - } - void Door::DebugDump() { --- 676,679 ---- |