Screenshot instructions:
Windows
Mac
Red Hat Linux
Ubuntu
Click URL instructions:
Right-click on ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)
You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(559) |
Nov
(772) |
Dec
(914) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(291) |
Feb
(312) |
Mar
(215) |
Apr
(243) |
May
(150) |
Jun
(18) |
Jul
(131) |
Aug
(436) |
Sep
(171) |
Oct
(233) |
Nov
(222) |
Dec
(141) |
2005 |
Jan
(74) |
Feb
(220) |
Mar
(326) |
Apr
(142) |
May
(165) |
Jun
(187) |
Jul
(246) |
Aug
(116) |
Sep
(10) |
Oct
(30) |
Nov
(257) |
Dec
(247) |
2006 |
Jan
(165) |
Feb
(38) |
Mar
(58) |
Apr
(135) |
May
(18) |
Jun
(102) |
Jul
(228) |
Aug
(250) |
Sep
(47) |
Oct
(26) |
Nov
(69) |
Dec
(263) |
2007 |
Jan
(120) |
Feb
(268) |
Mar
(50) |
Apr
(64) |
May
(49) |
Jun
(39) |
Jul
(22) |
Aug
(56) |
Sep
(9) |
Oct
(2) |
Nov
(47) |
Dec
(115) |
2008 |
Jan
(57) |
Feb
(81) |
Mar
(26) |
Apr
(10) |
May
(19) |
Jun
(69) |
Jul
(10) |
Aug
(6) |
Sep
(111) |
Oct
(105) |
Nov
(11) |
Dec
(19) |
2009 |
Jan
(92) |
Feb
(159) |
Mar
(86) |
Apr
(59) |
May
(320) |
Jun
(443) |
Jul
(103) |
Aug
(315) |
Sep
(221) |
Oct
(122) |
Nov
(13) |
Dec
(46) |
2010 |
Jan
(6) |
Feb
(1) |
Mar
(65) |
Apr
(100) |
May
(83) |
Jun
(171) |
Jul
(145) |
Aug
(223) |
Sep
(107) |
Oct
(89) |
Nov
(123) |
Dec
(86) |
2011 |
Jan
(66) |
Feb
(101) |
Mar
(140) |
Apr
(80) |
May
(68) |
Jun
(45) |
Jul
(97) |
Aug
(119) |
Sep
(46) |
Oct
(45) |
Nov
(74) |
Dec
(89) |
2012 |
Jan
(124) |
Feb
(156) |
Mar
(102) |
Apr
(56) |
May
(25) |
Jun
(16) |
Jul
(73) |
Aug
(82) |
Sep
(53) |
Oct
(59) |
Nov
(90) |
Dec
(112) |
2013 |
Jan
(191) |
Feb
(58) |
Mar
(68) |
Apr
(49) |
May
(28) |
Jun
(42) |
Jul
(25) |
Aug
(15) |
Sep
|
Oct
(3) |
Nov
(4) |
Dec
(58) |
2014 |
Jan
(100) |
Feb
(2) |
Mar
(4) |
Apr
(1) |
May
(24) |
Jun
(8) |
Jul
(3) |
Aug
(9) |
Sep
(2) |
Oct
(90) |
Nov
(56) |
Dec
(44) |
2015 |
Jan
(51) |
Feb
(40) |
Mar
(7) |
Apr
(11) |
May
(6) |
Jun
(23) |
Jul
(46) |
Aug
(63) |
Sep
(58) |
Oct
(32) |
Nov
(32) |
Dec
(9) |
2016 |
Jan
(5) |
Feb
(8) |
Mar
(12) |
Apr
(24) |
May
(13) |
Jun
(7) |
Jul
(6) |
Aug
(18) |
Sep
(6) |
Oct
(9) |
Nov
(4) |
Dec
(5) |
2017 |
Jan
(6) |
Feb
(3) |
Mar
(13) |
Apr
(2) |
May
(2) |
Jun
(77) |
Jul
(13) |
Aug
(42) |
Sep
(92) |
Oct
(39) |
Nov
(35) |
Dec
(27) |
2018 |
Jan
(20) |
Feb
(17) |
Mar
(47) |
Apr
(75) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1
|
2
(1) |
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
(6) |
14
(39) |
15
(2) |
16
(4) |
17
(23) |
18
(17) |
19
(5) |
20
(7) |
21
(4) |
22
|
23
|
24
(8) |
25
(8) |
26
(9) |
27
(10) |
28
(3) |
29
(12) |
30
(3) |
31
(4) |
|
|
|
|
From: Laszlo Toth <avenger_teambg@us...> - 2005-05-19 16:36:49
|
Update of /cvsroot/gemrb/gemrb/gemrb/plugins/Core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26776 Modified Files: GameControl.h GameScript.cpp Interface.cpp Log Message: piles should be approached more closely (so the pc must stand on exactly the same search square and the container-groundpile would be seen in the inventory screen too) Finally fixed the hidegui bug - thanks Ed Index: GameScript.cpp =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/Core/GameScript.cpp,v retrieving revision 1.271 retrieving revision 1.272 diff -C2 -d -r1.271 -r1.272 *** GameScript.cpp 18 May 2005 11:31:27 -0000 1.271 --- GameScript.cpp 19 May 2005 16:36:39 -0000 1.272 *************** *** 9325,9329 **** } double distance = Distance(Sender, gc->target); ! if (distance<=MAX_OPERATING_DISTANCE) { //check if the container is unlocked --- 9325,9333 ---- } double distance = Distance(Sender, gc->target); ! double needed = MAX_OPERATING_DISTANCE; ! if (container->Type==IE_CONTAINER_PILE) { ! needed = 15; // less than a search square (width) ! } ! if (distance<=needed) { //check if the container is unlocked Index: Interface.cpp =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/Core/Interface.cpp,v retrieving revision 1.308 retrieving revision 1.309 diff -C2 -d -r1.308 -r1.309 *** Interface.cpp 19 May 2005 14:56:17 -0000 1.308 --- Interface.cpp 19 May 2005 16:36:39 -0000 1.309 *************** *** 1911,1915 **** if (!vars->Lookup( "MessageWindowSize", index ) || (index!=game->ControlStatus) ) { - printf("****************Set new windowsize: %d\n", game->ControlStatus); vars->SetAt( "MessageWindowSize", game->ControlStatus); guiscript->RunFunction( "UpdateControlStatus" ); --- 1911,1914 ---- *************** *** 1917,1921 **** SetControlStatus(0,0,0x7f000000|IE_GUI_CONTROL_FOCUSED); GameControl *gc = GetGameControl(); ! if (index & CS_HIDEGUI) gc->HideGUI(); else gc->UnhideGUI(); if (flg & DF_START_DIALOG) { --- 1916,1921 ---- SetControlStatus(0,0,0x7f000000|IE_GUI_CONTROL_FOCUSED); GameControl *gc = GetGameControl(); ! //this is the only value we can use here ! if (game->ControlStatus & CS_HIDEGUI) gc->HideGUI(); else gc->UnhideGUI(); if (flg & DF_START_DIALOG) { Index: GameControl.h =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/Core/GameControl.h,v retrieving revision 1.67 retrieving revision 1.68 diff -C2 -d -r1.67 -r1.68 *** GameControl.h 17 May 2005 13:52:01 -0000 1.67 --- GameControl.h 19 May 2005 16:36:38 -0000 1.68 *************** *** 61,65 **** //the distance of operating a trigger, container, etc. ! #define MAX_OPERATING_DISTANCE 40 //the distance between PC's who are about to enter a new area #define MAX_TRAVELING_DISTANCE 400 --- 61,65 ---- //the distance of operating a trigger, container, etc. ! #define MAX_OPERATING_DISTANCE 40 //a search square is 16x12 //the distance between PC's who are about to enter a new area #define MAX_TRAVELING_DISTANCE 400 |
From: Laszlo Toth <avenger_teambg@us...> - 2005-05-19 14:57:14
|
Update of /cvsroot/gemrb/gemrb/gemrb/plugins/Core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5512/plugins/Core Modified Files: Actor.cpp ActorBlock.cpp ActorBlock.h Game.cpp Game.h GameControl.cpp Interface.cpp Interface.h Item.h Map.cpp Map.h Polygon.cpp TileMap.cpp TileMap.h Video.h Log Message: Added rendering of ground piles (almost perfect, except shadows are not transparent) Fixed permanent removal of selected actor (won't crash anymore) Index: Actor.cpp =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/Core/Actor.cpp,v retrieving revision 1.102 retrieving revision 1.103 diff -C2 -d -r1.102 -r1.103 *** Actor.cpp 18 May 2005 11:31:26 -0000 1.102 --- Actor.cpp 19 May 2005 14:56:07 -0000 1.103 *************** *** 589,593 **** return; } ! Selected=false; InternalFlags|=IF_JUSTDIED; if (!InParty) { --- 589,594 ---- return; } ! //Can't simply set Selected to false, game has its own little list ! core->GetGame()->SelectActor(this, false, SELECT_NORMAL); InternalFlags|=IF_JUSTDIED; if (!InParty) { Index: Interface.h =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/Core/Interface.h,v retrieving revision 1.153 retrieving revision 1.154 diff -C2 -d -r1.153 -r1.154 *** Interface.h 16 May 2005 12:01:21 -0000 1.153 --- Interface.h 19 May 2005 14:56:17 -0000 1.154 *************** *** 417,420 **** --- 417,424 ---- /** returns the first selected PC */ Actor *GetFirstSelectedPC(); + /** returns a single sprite (not cached) from a BAM resource */ + Sprite2D* GetBAMSprite(ieResRef ResRef, int cycle, int frame); + /** returns a cursor sprite (not cached) */ + Sprite2D *GetCursorSprite(); private: bool LoadConfig(void); Index: Game.h =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/Core/Game.h,v retrieving revision 1.49 retrieving revision 1.50 diff -C2 -d -r1.49 -r1.50 *** Game.h 14 May 2005 11:18:07 -0000 1.49 --- Game.h 19 May 2005 14:56:16 -0000 1.50 *************** *** 47,51 **** #define SELECT_NORMAL 0x00 #define SELECT_REPLACE 0x01 // when selecting actor, deselect all others ! #define SELECT_QUIET 0x02 // do not run handler when chanfing selection // Flags bits for EveryoneNearPoint() --- 47,51 ---- #define SELECT_NORMAL 0x00 #define SELECT_REPLACE 0x01 // when selecting actor, deselect all others ! #define SELECT_QUIET 0x02 // do not run handler when changing selection // Flags bits for EveryoneNearPoint() Index: Game.cpp =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/Core/Game.cpp,v retrieving revision 1.71 retrieving revision 1.72 diff -C2 -d -r1.71 -r1.72 *** Game.cpp 10 Apr 2005 17:31:48 -0000 1.71 --- Game.cpp 19 May 2005 14:56:16 -0000 1.72 *************** *** 206,209 **** --- 206,212 ---- PCs.erase( m ); NPCs.push_back( actor ); + //actors leaving team are not selectable anymore + printf("Removing actor called\n"); + SelectActor (actor, false, SELECT_NORMAL); return ( int ) NPCs.size() - 1; } *************** *** 279,282 **** --- 282,286 ---- std::vector< Actor*>::iterator m; + printf("Selectactor called\n"); // actor was not specified, which means all PCs should be (de)selected if (! actor) { *************** *** 325,330 **** --- 329,336 ---- } else { + printf("Selection clear called llooking\n"); for ( m = selected.begin(); m != selected.end(); ++m) { if ((*m) == actor) { + printf("Selected erase called\n"); selected.erase( m ); break; Index: TileMap.cpp =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/Core/TileMap.cpp,v retrieving revision 1.42 retrieving revision 1.43 diff -C2 -d -r1.42 -r1.43 *** TileMap.cpp 19 Mar 2005 16:15:57 -0000 1.42 --- TileMap.cpp 19 May 2005 14:56:18 -0000 1.43 *************** *** 78,85 **** } ! void TileMap::DrawOverlay(unsigned int index, Region viewport) { if (index < overlays.size()) { ! overlays[index]->Draw( viewport ); } } --- 78,85 ---- } ! void TileMap::DrawOverlay(unsigned int index, Region screen) { if (index < overlays.size()) { ! overlays[index]->Draw( screen ); } } *************** *** 168,174 **** int e = ! IS_EXPLORED( x, y - 1); ! if(! IS_EXPLORED( x - 1, y )) e |= 2; ! if(! IS_EXPLORED( x, y + 1 )) e |= 4; ! if(! IS_EXPLORED( x + 1, y )) e |= 8; switch (e) { --- 168,174 ---- int e = ! IS_EXPLORED( x, y - 1); ! if (! IS_EXPLORED( x - 1, y )) e |= 2; ! if (! IS_EXPLORED( x, y + 1 )) e |= 4; ! if (! IS_EXPLORED( x + 1, y )) e |= 8; switch (e) { *************** *** 236,242 **** int e = ! IS_VISIBLE( x, y - 1); ! if(! IS_VISIBLE( x - 1, y )) e |= 2; ! if(! IS_VISIBLE( x, y + 1 )) e |= 4; ! if(! IS_VISIBLE( x + 1, y )) e |= 8; switch (e) { --- 236,242 ---- int e = ! IS_VISIBLE( x, y - 1); ! if (! IS_VISIBLE( x - 1, y )) e |= 2; ! if (! IS_VISIBLE( x, y + 1 )) e |= 4; ! if (! IS_VISIBLE( x + 1, y )) e |= 8; switch (e) { *************** *** 368,383 **** for (size_t i = 0; i < containers.size(); i++) { Container* c = containers[i]; ! if(type!=-1) { ! if(c->Type!=type) continue; ! } ! if (c->outline->BBox.x > position.x) ! continue; ! if (c->outline->BBox.y > position.y) ! continue; ! if (c->outline->BBox.x + c->outline->BBox.w < position.x) ! continue; ! if (c->outline->BBox.y + c->outline->BBox.h < position.y) ! continue; if (c->outline->PointIn( position )) return c; --- 368,387 ---- for (size_t i = 0; i < containers.size(); i++) { Container* c = containers[i]; ! if (type!=-1) { ! if (c->Type!=type) continue; ! } ! if (c->outline->BBox.x > position.x) ! continue; ! if (c->outline->BBox.y > position.y) ! continue; ! if (c->outline->BBox.x + c->outline->BBox.w < position.x) ! continue; ! if (c->outline->BBox.y + c->outline->BBox.h < position.y) ! continue; ! ! //IE piles don't have polygons, the bounding box is enough for them ! if (c->Type==IE_CONTAINER_PILE) ! return c; if (c->outline->PointIn( position )) return c; *************** *** 390,409 **** Point tmp[4]; 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; ! tmp[0].y=position.y-5; ! tmp[1].x=position.x+5; ! tmp[1].y=position.y-5; ! tmp[2].x=position.x+5; ! tmp[2].y=position.y+5; ! tmp[3].x=position.x-5; ! tmp[3].y=position.y+5; Gem_Polygon* outline = new Gem_Polygon( tmp, 4 ); ! container = AddContainer(heapname,IE_CONTAINER_PILE, outline); container->Pos=position; } ! container->inventory.AddItem(item); } --- 394,421 ---- Point tmp[4]; char heapname[32]; + + //converting to search square + position.x/=16; + position.y/=12; sprintf(heapname,"heap_%hd.%hd",position.x,position.y); + //pixel position is centered on search square + position.x=position.x*16+8; + position.y=position.y*12+6; Container *container = GetContainer(position,IE_CONTAINER_PILE); ! if (!container) { ! //bounding box covers the search square ! tmp[0].x=position.x-8; ! tmp[0].y=position.y-6; ! tmp[1].x=position.x+8; ! tmp[1].y=position.y-6; ! tmp[2].x=position.x+8; ! tmp[2].y=position.y+6; ! tmp[3].x=position.x-8; ! tmp[3].y=position.y+6; Gem_Polygon* outline = new Gem_Polygon( tmp, 4 ); ! container = AddContainer(heapname, IE_CONTAINER_PILE, outline); container->Pos=position; } ! container->AddItem(item); } Index: TileMap.h =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/Core/TileMap.h,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** TileMap.h 19 Mar 2005 16:15:57 -0000 1.31 --- TileMap.h 19 May 2005 14:56:18 -0000 1.32 *************** *** 73,77 **** void AddOverlay(TileOverlay* overlay); ! void DrawOverlay(unsigned int index, Region viewport); void DrawFogOfWar(ieByte* explored_mask, ieByte* visible_mask, Region viewport); public: --- 73,77 ---- void AddOverlay(TileOverlay* overlay); ! void DrawOverlay(unsigned int index, Region screen); void DrawFogOfWar(ieByte* explored_mask, ieByte* visible_mask, Region viewport); public: Index: ActorBlock.cpp =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/Core/ActorBlock.cpp,v retrieving revision 1.89 retrieving revision 1.90 diff -C2 -d -r1.89 -r1.90 *** ActorBlock.cpp 14 May 2005 11:18:07 -0000 1.89 --- ActorBlock.cpp 19 May 2005 14:56:16 -0000 1.90 *************** *** 1,4 **** /* GemRB - Infinity Engine Emulator ! * Copyright (C) 2003 The GemRB Project * * This program is free software; you can redistribute it and/or --- 1,4 ---- /* GemRB - Infinity Engine Emulator ! * Copyright (C) 2003-2005 The GemRB Project * * This program is free software; you can redistribute it and/or *************** *** 851,858 **** --- 851,936 ---- TrapDetected = 0; inventory.SetInventoryType(INVENTORY_HEAP); + // NULL should be 0 for this + memset (groundicons, 0, sizeof(groundicons) ); + } + + void Container::FreeGroundIcons() + { + Video* video = core->GetVideoDriver(); + + for (int i=0;i<MAX_GROUND_ICON_DRAWN;i++) { + if (groundicons[i]) { + video->FreeSprite( groundicons[i] ); + groundicons[i]=NULL; + } + } } Container::~Container() { + FreeGroundIcons(); + } + + void Container::DrawPile(bool highlight, Region screen, Color tint) + { + Video* video = core->GetVideoDriver(); + for (int i=0;i<MAX_GROUND_ICON_DRAWN;i++) { + if (groundicons[i]) { + //draw it with highlight + if (highlight) { + video->BlitSpriteTinted (groundicons[i], screen.x + Pos.x, screen.y + Pos.y, tint); + } else { + //draw with second color transparent too + video->BlitSpriteNoShadow (groundicons[i], screen.x + Pos.x, screen.y + Pos.y, tint); + } + } + } + } + + //This function doesn't exist in the original IE, destroys a container + //turning it to a ground pile + void Container::DestroyContainer() + { + //it is already a groundpile? + if (Type==IE_CONTAINER_PILE) + return; + Type = IE_CONTAINER_PILE; + RefreshGroundIcons(); + //probably we should stop the script or trigger it, whatever + } + + //Takes an item from the container's inventory and returns its pointer + CREItem *Container::RemoveItem(int idx) + { + CREItem *ret = inventory.RemoveItem(idx, 0); + //we just took the 3. or less item, groundpile changed + if ((Type==IE_CONTAINER_PILE) && (inventory.GetSlotCount()<3)) { + RefreshGroundIcons(); + } + return ret; + } + + //Adds an item to the container's inventory + void Container::AddItem(CREItem *item) + { + inventory.AddItem(item); + //we just added a 3. or less item, groundpile changed + if ((Type==IE_CONTAINER_PILE) && (inventory.GetSlotCount()<4)) { + RefreshGroundIcons(); + } + } + + void Container::RefreshGroundIcons() + { + int i = inventory.GetSlotCount(); + if (i>MAX_GROUND_ICON_DRAWN) + i=MAX_GROUND_ICON_DRAWN; + FreeGroundIcons(); + while (i--) { + CREItem *slot = inventory.GetSlotItem(i); //borrowed reference + Item *itm = core->GetItem( slot->ItemResRef ); //cached reference + groundicons[i] = core->GetBAMSprite( itm->GroundIcon, -1, 0 ); + core->FreeItem( itm, slot->ItemResRef ); //decref + } } Index: Video.h =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/Core/Video.h,v retrieving revision 1.41 retrieving revision 1.42 diff -C2 -d -r1.41 -r1.42 *** Video.h 9 Apr 2005 19:13:43 -0000 1.41 --- Video.h 19 May 2005 14:56:18 -0000 1.42 *************** *** 63,68 **** virtual void BlitSpriteRegion(Sprite2D* spr, Region& size, int x, int y, bool anchor = true, Region* clip = NULL) = 0; virtual void BlitSpriteTinted(Sprite2D* spr, int x, int y, Color tint, ! Color *palette, Region* clip = NULL) = 0; virtual void SetCursor(Sprite2D* up, Sprite2D* down) = 0; virtual void SetDragCursor(Sprite2D* drag) = 0; --- 63,70 ---- virtual void BlitSpriteRegion(Sprite2D* spr, Region& size, int x, int y, bool anchor = true, Region* clip = NULL) = 0; + virtual void BlitSpriteNoShadow(Sprite2D* spr, int x, int y, Color tint, + Region* clip = NULL) = 0; virtual void BlitSpriteTinted(Sprite2D* spr, int x, int y, Color tint, ! Color *palette = NULL, Region* clip = NULL) = 0; virtual void SetCursor(Sprite2D* up, Sprite2D* down) = 0; virtual void SetDragCursor(Sprite2D* drag) = 0; Index: Map.cpp =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/Core/Map.cpp,v retrieving revision 1.160 retrieving revision 1.161 diff -C2 -d -r1.160 -r1.161 *** Map.cpp 16 May 2005 12:01:22 -0000 1.160 --- Map.cpp 19 May 2005 14:56:17 -0000 1.161 *************** *** 498,510 **** } ! void Map::DrawMap(Region viewport, GameControl* gc) { unsigned int i; //Draw the Map ! if (TMap) { ! TMap->DrawOverlay( 0, viewport ); } //Blit the Background Map Animations (before actors) ! Video* video = core->GetVideoDriver(); for (i = 0; i < animations.size(); i++) { Animation *anim = animations[i]; --- 498,540 ---- } ! void Map::DrawContainers( Region screen, Container *overContainer) ! { ! Region vp = core->GetVideoDriver()->GetViewport(); ! unsigned int i = 0; ! Container *c; ! ! while ( (c = TMap->GetContainer(i++))!=NULL ) { ! Color tint = LightMap->GetPixel( c->Pos.x / 16, c->Pos.y / 12); ! tint.a = 255; ! ! if ((c != overContainer) && (c->Type==IE_CONTAINER_PILE) ) { ! if (c->outline->BBox.InsideRegion( vp )) { ! c->DrawPile(false, screen, tint); ! } ! } ! } ! //draw overcontainer with highlight ! if (overContainer) { ! if (overContainer->Type==IE_CONTAINER_PILE) { ! Color tint = LightMap->GetPixel( overContainer->Pos.x / 16, overContainer->Pos.y / 12); ! tint.a = 255; ! overContainer->DrawPile(true, screen, tint); ! } else { ! overContainer->DrawOutline(); ! } ! } ! } ! ! void Map::DrawMap(Region screen, GameControl* gc) { unsigned int i; //Draw the Map ! ! if (!TMap) { ! return; } + TMap->DrawOverlay( 0, screen ); //Blit the Background Map Animations (before actors) ! Video* video = core->GetVideoDriver(); for (i = 0; i < animations.size(); i++) { Animation *anim = animations[i]; *************** *** 524,529 **** } video->BlitSpriteTinted( anim->NextFrame(), ! p.x + viewport.x, p.y + viewport.y, ! tint, anim->Palette, &viewport ); } //Draw Selected Door Outline --- 554,559 ---- } video->BlitSpriteTinted( anim->NextFrame(), ! p.x + screen.x, p.y + screen.y, ! tint, anim->Palette, &screen ); } //Draw Selected Door Outline *************** *** 531,541 **** gc->overDoor->DrawOutline(); } ! if (gc->overContainer) { ! gc->overContainer->DrawOutline(); ! } Region vp = video->GetViewport(); - Region Screen = vp; - Screen.x = viewport.x; - Screen.y = viewport.y; // starting with lowest priority (so they are drawn over) GenerateQueues(); --- 561,566 ---- gc->overDoor->DrawOutline(); } ! DrawContainers( screen, gc->overContainer ); Region vp = video->GetViewport(); // starting with lowest priority (so they are drawn over) GenerateQueues(); *************** *** 556,561 **** if (actor->textDisplaying == 1) { Font* font = core->GetFont( 1 ); ! Region rgn( actor->Pos.x - 100 + viewport.x, ! actor->Pos.y - 100 + viewport.y, 200, 400 ); font->Print( rgn, ( unsigned char * ) actor->overHeadText, NULL, IE_FONT_ALIGN_CENTER | IE_FONT_ALIGN_TOP, --- 581,587 ---- if (actor->textDisplaying == 1) { Font* font = core->GetFont( 1 ); ! Region rgn( actor->Pos.x-100+screen.x, ! actor->Pos.y - 100 + screen.y, ! 200, 400 ); font->Print( rgn, ( unsigned char * ) actor->overHeadText, NULL, IE_FONT_ALIGN_CENTER | IE_FONT_ALIGN_TOP, *************** *** 637,641 **** Color tint = LightMap->GetPixel( cx / 16, cy / 12); tint.a = 255-Trans; ! video->BlitSpriteTinted( nextFrame, cx + viewport.x, cy + viewport.y, tint, anim->Palette, &Screen ); if (anim->endReached) { if (HandleActorStance(actor, ca, StanceID) ) { --- 663,667 ---- Color tint = LightMap->GetPixel( cx / 16, cy / 12); tint.a = 255-Trans; ! video->BlitSpriteTinted( nextFrame, cx + screen.x, cy + screen.y, tint, anim->Palette, &screen ); if (anim->endReached) { if (HandleActorStance(actor, ca, StanceID) ) { *************** *** 666,671 **** } video->BlitSpriteTinted( anim->NextFrame(), ! p.x + viewport.x, p.y + viewport.y, ! tint, anim->Palette, &viewport ); } --- 692,697 ---- } video->BlitSpriteTinted( anim->NextFrame(), ! p.x + screen.x, p.y + screen.y, ! tint, anim->Palette, &screen ); } *************** *** 691,704 **** continue; if (vvc->Transparency & IE_VVC_BRIGHTEST) { ! video->BlitSprite( frame, vvc->XPos + viewport.x, ! vvc->YPos + viewport.y, false, &viewport ); } else { ! video->BlitSprite( frame, vvc->XPos + viewport.x, ! vvc->YPos + viewport.y, false, &viewport ); } } if (core->FogOfWar && TMap) { ! TMap->DrawFogOfWar( ExploredBitmap, VisibleBitmap, viewport ); } } --- 717,730 ---- continue; if (vvc->Transparency & IE_VVC_BRIGHTEST) { ! video->BlitSprite( frame, vvc->XPos + screen.x, ! vvc->YPos + screen.y, false, &screen ); } else { ! video->BlitSprite( frame, vvc->XPos + screen.x, ! vvc->YPos + screen.y, false, &screen ); } } if (core->FogOfWar && TMap) { ! TMap->DrawFogOfWar( ExploredBitmap, VisibleBitmap, screen ); } } *************** *** 739,743 **** --- 765,771 ---- Actor *actor = actors[i]; Game *game = core->GetGame(); + printf("Leaveparty\n"); game->LeaveParty( actor ); + printf("DelNPC\n"); game->DelNPC( game->InStore(actor) ); actors.erase( actors.begin()+i ); *************** *** 1309,1313 **** { PathNode* StartNode = new PathNode; ! PathNode *Return = StartNode; StartNode->Next = NULL; StartNode->Parent = NULL; --- 1337,1341 ---- { PathNode* StartNode = new PathNode; ! PathNode *Return = StartNode; StartNode->Next = NULL; StartNode->Parent = NULL; *************** *** 1317,1321 **** int Max = Steps; ! while(Steps--) { int x,y; --- 1345,1349 ---- int Max = Steps; ! while(Steps--) { int x,y; *************** *** 1323,1332 **** StartNode->Next->Parent = StartNode; StartNode = StartNode->Next; ! StartNode->Next = NULL; x = (start.x + dest.x) * Steps / Max; y = (start.y + dest.y) * Steps / Max; ! StartNode->x = x; ! StartNode->y = y; ! StartNode->orient = Orientation; bool wall = (!( Passable[SearchMap->GetPixelIndex( x, y )] & PATH_MAP_PASSABLE )); if (wall) switch (flags) { --- 1351,1360 ---- StartNode->Next->Parent = StartNode; StartNode = StartNode->Next; ! StartNode->Next = NULL; x = (start.x + dest.x) * Steps / Max; y = (start.y + dest.y) * Steps / Max; ! StartNode->x = x; ! StartNode->y = y; ! StartNode->orient = Orientation; bool wall = (!( Passable[SearchMap->GetPixelIndex( x, y )] & PATH_MAP_PASSABLE )); if (wall) switch (flags) { *************** *** 1339,1343 **** return Return; } ! } return Return; --- 1367,1371 ---- return Return; } ! } return Return; Index: Map.h =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/Core/Map.h,v retrieving revision 1.71 retrieving revision 1.72 diff -C2 -d -r1.71 -r1.72 *** Map.h 18 Apr 2005 19:15:03 -0000 1.71 --- Map.h 19 May 2005 14:56:18 -0000 1.72 *************** *** 141,145 **** void CreateMovement(char *command, const char *area, const char *entrance); void UpdateScripts(); ! void DrawMap(Region viewport, GameControl* gc); void PlayAreaSong(int); void AddAnimation(Animation* anim); --- 141,146 ---- void CreateMovement(char *command, const char *area, const char *entrance); void UpdateScripts(); ! void DrawContainers(Region screen, Container *overContainer); ! void DrawMap(Region screen, GameControl* gc); void PlayAreaSong(int); void AddAnimation(Animation* anim); Index: GameControl.cpp =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/Core/GameControl.cpp,v retrieving revision 1.228 retrieving revision 1.229 diff -C2 -d -r1.228 -r1.229 *** GameControl.cpp 18 May 2005 12:28:37 -0000 1.228 --- GameControl.cpp 19 May 2005 14:56:16 -0000 1.229 *************** *** 213,226 **** viewport.y += video->moveY; core->MoveViewportTo( viewport.x, viewport.y, false ); ! Region vp( x + XPos, y + YPos, Width, Height ); Map* area = game->GetCurrentArea( ); if (!area) { ! core->GetVideoDriver()->DrawRect( vp, blue, true ); return; } ! core->GetVideoDriver()->DrawRect( vp, black, true ); //shall we stop globaltimer? //core->GSUpdate(update_scripts); ! area->DrawMap( vp, this ); if (update_scripts) area->UpdateScripts(); --- 213,226 ---- viewport.y += video->moveY; core->MoveViewportTo( viewport.x, viewport.y, false ); ! Region screen( x + XPos, y + YPos, Width, Height ); Map* area = game->GetCurrentArea( ); if (!area) { ! core->GetVideoDriver()->DrawRect( screen, blue, true ); return; } ! core->GetVideoDriver()->DrawRect( screen, black, true ); //shall we stop globaltimer? //core->GSUpdate(update_scripts); ! area->DrawMap( screen, this ); if (update_scripts) area->UpdateScripts(); Index: Polygon.cpp =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/Core/Polygon.cpp,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** Polygon.cpp 13 Nov 2004 00:33:39 -0000 1.12 --- Polygon.cpp 19 May 2005 14:56:18 -0000 1.13 *************** *** 58,73 **** BBox.x=points[0].x; BBox.y=points[0].y; ! BBox.w=0; ! BBox.h=0; for(int i=1; i<count; i++) { if(points[i].x<BBox.x) { - BBox.w+=BBox.x-points[i].x; BBox.x=points[i].x; } if(points[i].y<BBox.y) { - BBox.h+=BBox.y-points[i].y; BBox.y=points[i].y; } } } --- 58,79 ---- BBox.x=points[0].x; BBox.y=points[0].y; ! BBox.w=points[0].x; ! BBox.h=points[0].y; for(int i=1; i<count; i++) { if(points[i].x<BBox.x) { BBox.x=points[i].x; } + if(points[i].x>BBox.w) { + BBox.w=points[i].x; + } if(points[i].y<BBox.y) { BBox.y=points[i].y; } + if(points[i].y>BBox.h) { + BBox.h=points[i].y; + } } + BBox.w-=BBox.x; + BBox.h-=BBox.y; } Index: Interface.cpp =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/Core/Interface.cpp,v retrieving revision 1.307 retrieving revision 1.308 diff -C2 -d -r1.307 -r1.308 *** Interface.cpp 18 May 2005 22:48:13 -0000 1.307 --- Interface.cpp 19 May 2005 14:56:17 -0000 1.308 *************** *** 490,494 **** printMessage( "Core", "Initializing stock sounds...", WHITE ); ! table = core->LoadTable( "defsound" ); if (table < 0) { printStatus( "ERROR", LIGHT_RED ); --- 490,494 ---- printMessage( "Core", "Initializing stock sounds...", WHITE ); ! table = LoadTable( "defsound" ); if (table < 0) { printStatus( "ERROR", LIGHT_RED ); *************** *** 496,500 **** goto end_of_init; } else { ! TableMgr* tm = core->GetTable( table ); if (tm) { DSCount = tm->GetRowCount(); --- 496,500 ---- goto end_of_init; } else { ! TableMgr* tm = GetTable( table ); if (tm) { DSCount = tm->GetRowCount(); *************** *** 503,507 **** strnuprcpy( DefSound[i], tm->QueryField( i, 0 ), 8 ); } ! core->DelTable( table ); } } --- 503,507 ---- strnuprcpy( DefSound[i], tm->QueryField( i, 0 ), 8 ); } ! DelTable( table ); } } *************** *** 599,610 **** console->Height = 25; console->SetFont( fonts[0] ); str = key->GetResource( CursorBam, IE_BAM_CLASS_ID ); if (anim->Open(str, true) ) { console->SetCursor( anim->GetFrameFromCycle( 0,0 ) ); - printStatus( "OK", LIGHT_GREEN ); } else { - printStatus( "ERROR", LIGHT_GREEN ); } printMessage( "Core", "Starting up the Sound Manager...", WHITE ); soundmgr = ( SoundMgr * ) GetInterface( IE_WAV_CLASS_ID ); --- 599,619 ---- console->Height = 25; console->SetFont( fonts[0] ); + { + Sprite2D *tmpsprite = GetCursorSprite(); + if (tmpsprite) { + console->SetCursor (tmpsprite); + printStatus( "OK", LIGHT_GREEN ); + } else { + printStatus( "ERROR", LIGHT_GREEN ); + } + } + /* str = key->GetResource( CursorBam, IE_BAM_CLASS_ID ); if (anim->Open(str, true) ) { console->SetCursor( anim->GetFrameFromCycle( 0,0 ) ); } else { } + */ printMessage( "Core", "Starting up the Sound Manager...", WHITE ); soundmgr = ( SoundMgr * ) GetInterface( IE_WAV_CLASS_ID ); *************** *** 3253,3254 **** --- 3262,3289 ---- } + // Return single BAM frame as a sprite. Use if you want one frame only, + // otherwise it's not efficient + Sprite2D* Interface::GetBAMSprite(ieResRef ResRef, int cycle, int frame) + { + AnimationMgr* bam = ( AnimationMgr* ) GetInterface( IE_BAM_CLASS_ID ); + DataStream *str = key->GetResource( ResRef, IE_BAM_CLASS_ID ); + if (!bam->Open( str, true ) ) { + return NULL; + } + Sprite2D *tspr; + if (cycle==-1) { + tspr = bam->GetFrame( frame ); + } + else { + tspr = bam->GetFrameFromCycle( (unsigned char) cycle, frame ); + } + FreeInterface( bam ); + + return tspr; + } + + Sprite2D *Interface::GetCursorSprite() + { + return GetBAMSprite(CursorBam, 0, 0); + } + Index: ActorBlock.h =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/Core/ActorBlock.h,v retrieving revision 1.70 retrieving revision 1.71 diff -C2 -d -r1.70 -r1.71 *** ActorBlock.h 29 Apr 2005 21:53:01 -0000 1.70 --- ActorBlock.h 19 May 2005 14:56:16 -0000 1.71 *************** *** 44,47 **** --- 44,48 ---- #define STEP_TIME 150 #define MAX_SCRIPTS 8 + #define MAX_GROUND_ICON_DRAWN 3 #define SCR_OVERRIDE 0 *************** *** 320,323 **** --- 321,336 ---- ~Container(void); void DebugDump(); + //turns the container to a pile + void DestroyContainer(); + //removes an item from the container's inventory + CREItem *RemoveItem(int idx); + //adds an item to the container's inventory + void AddItem(CREItem *item); + //draws the ground icons + void DrawPile(bool highlight, Region screen, Color tint); + private: + //updates the ground icons for a pile + void RefreshGroundIcons(); + void FreeGroundIcons(); public: Point toOpen; *************** *** 330,333 **** --- 343,348 ---- unsigned short TrapDetected; Inventory inventory; + //these are not saved + Sprite2D *groundicons[3]; }; Index: Item.h =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/Core/Item.h,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** Item.h 19 Feb 2005 19:09:46 -0000 1.15 --- Item.h 19 May 2005 14:56:17 -0000 1.16 *************** *** 155,163 **** // PST and IWD2 only char unknown[26]; - /* - AnimationMgr* ItemIconBAM; - AnimationMgr* GroundIconBAM; - AnimationMgr* CarriedIconBAM; - */ public: ieStrRef GetItemName(bool identified) --- 155,158 ---- |
From: Laszlo Toth <avenger_teambg@us...> - 2005-05-19 14:56:47
|
Update of /cvsroot/gemrb/gemrb/gemrb/plugins/AREImporter In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5512/plugins/AREImporter Modified Files: AREImp.cpp Log Message: Added rendering of ground piles (almost perfect, except shadows are not transparent) Fixed permanent removal of selected actor (won't crash anymore) Index: AREImp.cpp =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/AREImporter/AREImp.cpp,v retrieving revision 1.109 retrieving revision 1.110 diff -C2 -d -r1.109 -r1.110 *** AREImp.cpp 29 Apr 2005 21:53:00 -0000 1.109 --- AREImp.cpp 19 May 2005 14:56:02 -0000 1.110 *************** *** 484,488 **** str->Seek( ItemsOffset+( ItemIndex * 0x14 ), GEM_STREAM_START); while(ItemCount--) { ! c->inventory.AddItem( core->ReadItem(str)); } if (Script[0] != 0) { --- 484,489 ---- str->Seek( ItemsOffset+( ItemIndex * 0x14 ), GEM_STREAM_START); while(ItemCount--) { ! //cannot add directly to inventory (ground piles) ! c->AddItem( core->ReadItem(str)); } if (Script[0] != 0) { |
From: Laszlo Toth <avenger_teambg@us...> - 2005-05-19 14:56:30
|
Update of /cvsroot/gemrb/gemrb/gemrb/plugins/GUIScript In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5512/plugins/GUIScript Modified Files: GUIScript.cpp Log Message: Added rendering of ground piles (almost perfect, except shadows are not transparent) Fixed permanent removal of selected actor (won't crash anymore) Index: GUIScript.cpp =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/GUIScript/GUIScript.cpp,v retrieving revision 1.306 retrieving revision 1.307 diff -C2 -d -r1.306 -r1.307 *** GUIScript.cpp 18 May 2005 15:37:11 -0000 1.306 --- GUIScript.cpp 19 May 2005 14:56:18 -0000 1.307 *************** *** 131,157 **** } - // Return single BAM frame as a sprite. Use if you want one frame only, - // otherwise it's not efficient - - inline Sprite2D* GetBAMSprite(ieResRef ResRef, int cycle, int frame) - { - AnimationMgr* bam = ( AnimationMgr* ) core->GetInterface( IE_BAM_CLASS_ID ); - DataStream *str = core->GetResourceMgr()->GetResource( ResRef, IE_BAM_CLASS_ID ); - if (!bam->Open( str, true ) ) { - RuntimeError( "BAM not found" ); - return NULL; - } - Sprite2D *tspr; - if (cycle==-1) { - tspr = bam->GetFrame( frame ); - } - else { - tspr = bam->GetFrameFromCycle( (unsigned char) cycle, frame ); - } - core->FreeInterface( bam ); - - return tspr; - } - PyDoc_STRVAR( GemRB_SetInfoTextColor__doc, "SetInfoTextColor(red, green, blue, [alpha])\n\n" --- 131,134 ---- *************** *** 1506,1511 **** edit->SetText( text ); ! Sprite2D* spr = GetBAMSprite( "CARET", 0, 0 ); ! if (spr) edit->SetCursor( spr ); win->AddControl( edit ); --- 1483,1491 ---- edit->SetText( text ); ! Sprite2D* spr = core->GetCursorSprite(); ! if (spr) ! edit->SetCursor( spr ); ! else ! return RuntimeError( "BAM not found" ); win->AddControl( edit ); *************** *** 3673,3680 **** Sprite2D* Picture; if (Which==2) { ! Picture = GetBAMSprite(item->CarriedIcon, -1, 0); } else { ! Picture = GetBAMSprite(item->ItemIcon, -1, Which); } btn->SetPicture( Picture ); core->FreeItem( item, ItemResRef, false ); --- 3653,3662 ---- Sprite2D* Picture; if (Which==2) { ! Picture = core->GetBAMSprite(item->CarriedIcon, -1, 0); } else { ! Picture = core->GetBAMSprite(item->ItemIcon, -1, Which); } + if (!Picture) + return RuntimeError( "BAM not found"); btn->SetPicture( Picture ); core->FreeItem( item, ItemResRef, false ); *************** *** 4656,4662 **** core->DragItem (si); ! Sprite2D *Picture = GetBAMSprite( ResRef, CycleIndex, FrameIndex ); if (Picture == NULL) { ! return NULL; } --- 4638,4644 ---- core->DragItem (si); ! Sprite2D *Picture = core->GetBAMSprite( ResRef, CycleIndex, FrameIndex ); if (Picture == NULL) { ! return RuntimeError( "BAM not found"); } |
From: Laszlo Toth <avenger_teambg@us...> - 2005-05-19 14:56:28
|
Update of /cvsroot/gemrb/gemrb/gemrb/plugins/SDLVideo In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5512/plugins/SDLVideo Modified Files: SDLVideoDriver.cpp SDLVideoDriver.h Log Message: Added rendering of ground piles (almost perfect, except shadows are not transparent) Fixed permanent removal of selected actor (won't crash anymore) Index: SDLVideoDriver.h =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/SDLVideo/SDLVideoDriver.h,v retrieving revision 1.47 retrieving revision 1.48 diff -C2 -d -r1.47 -r1.48 *** SDLVideoDriver.h 12 Apr 2005 18:42:49 -0000 1.47 --- SDLVideoDriver.h 19 May 2005 14:56:20 -0000 1.48 *************** *** 55,60 **** bool ToggleGrabInput(); void MouseMovement(int x, int y); ! Sprite2D* CreateSprite(int w, int h, int bpp, ieDword rMask, ieDword gMask, ! ieDword bMask, ieDword aMask, void* pixels, bool cK = false, int index = 0); Sprite2D* CreateSprite8(int w, int h, int bpp, void* pixels, void* palette, bool cK = false, int index = 0); --- 55,61 ---- bool ToggleGrabInput(); void MouseMovement(int x, int y); ! Sprite2D* CreateSprite(int w, int h, int bpp, ieDword rMask, ! ieDword gMask, ieDword bMask, ieDword aMask, void* pixels, ! bool cK = false, int index = 0); Sprite2D* CreateSprite8(int w, int h, int bpp, void* pixels, void* palette, bool cK = false, int index = 0); *************** *** 64,69 **** void BlitSpriteRegion(Sprite2D* spr, Region& size, int x, int y, bool anchor = true, Region* clip = NULL); void BlitSpriteTinted(Sprite2D* spr, int x, int y, Color tint, ! Color *Palette, Region* clip = NULL); void SetCursor(Sprite2D* up, Sprite2D* down); void SetDragCursor(Sprite2D* drag); --- 65,72 ---- void BlitSpriteRegion(Sprite2D* spr, Region& size, int x, int y, bool anchor = true, Region* clip = NULL); + void BlitSpriteNoShadow(Sprite2D* spr, int x, int y, Color tint, + Region *clip = NULL); void BlitSpriteTinted(Sprite2D* spr, int x, int y, Color tint, ! Color *Palette = NULL, Region* clip = NULL); void SetCursor(Sprite2D* up, Sprite2D* down); void SetDragCursor(Sprite2D* drag); Index: SDLVideoDriver.cpp =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/SDLVideo/SDLVideoDriver.cpp,v retrieving revision 1.103 retrieving revision 1.104 diff -C2 -d -r1.103 -r1.104 *** SDLVideoDriver.cpp 12 Apr 2005 18:42:41 -0000 1.103 --- SDLVideoDriver.cpp 19 May 2005 14:56:19 -0000 1.104 *************** *** 25,28 **** --- 25,31 ---- #include <math.h> + //actually it won't be transparent :( + SDL_Color TRANSPARENT_BLACK={0,0,0,SDL_ALPHA_TRANSPARENT}; + SDLVideoDriver::SDLVideoDriver(void) { *************** *** 530,533 **** --- 533,562 ---- } + //tint is always employed without anchor (only rendering ingame objects) + void SDLVideoDriver::BlitSpriteNoShadow(Sprite2D* spr, int x, int y, Color tint, + Region *clip) + { + SDL_Surface* tmp = ( SDL_Surface* ) spr->vptr; + if(!tmp) { + return; + } + SDL_LockSurface( tmp ); + SDL_Color* pal = tmp->format->palette->colors; + SDL_Color oldPal[256]; + memcpy( oldPal, pal, 256 * sizeof( SDL_Color ) ); + for (int i = 2; i < 256; i++) { + pal[i].r = ( tint.r * pal[i].r ) >> 8; + pal[i].g = ( tint.g * pal[i].g ) >> 8; + pal[i].b = ( tint.b * pal[i].b ) >> 8; + } + SDL_Color backup=pal[1]; + pal[1] = TRANSPARENT_BLACK; + SDL_UnlockSurface( tmp ); + SDL_SetAlpha( tmp, SDL_SRCALPHA, tint.a); + BlitSprite( spr, x, y, false, clip ); + //copying back the original palette + SDL_SetPalette( tmp, SDL_LOGPAL, ( SDL_Color * ) oldPal, 0, 256 ); + } + void SDLVideoDriver::BlitSpriteTinted(Sprite2D* spr, int x, int y, Color tint, Color *Palette, Region* clip) |