summaryrefslogtreecommitdiff
path: root/src/gui/viewport.cpp
AgeCommit message (Collapse)AuthorFilesLines
2010-02-07Updated Copyright year to 2010!Bertram1-1/+1
Also added the update copyright tool from the Wormux Team. ( And not forgetting credit's due. :P )
2010-02-01Small cleanups.Bertram1-3/+3
2010-01-31Unify eAthena and manaserv support in to one build.Daniel Bradshaw1-3/+8
Finish support for server types in the server dialog. Using the new server type function, strip out ifdefs, replacing them with if blocks for later merging in smaller atomic commits. Remove any remaining references to the support defs, including in build system.
2010-01-27Added mutators/accessors to being.h and smal cleanups.Bertram1-4/+4
2010-01-26Removed a non-hurting ifdef...Bertram1-2/+2
2010-01-25Finished Freeyorp's ViewPort bug fixing commit:Bertram1-5/+5
http://gitorious.org/mana/mana/commit/58149dca937410826971f99b72e304121e61abb7 by merging ViewPort::mLocalWalkTime and ::mLocalWalktime into the first one, removing ifdefs, and making sure the setDestination() calls aren't done each ticks by setting the mLocalWalkTime equal to player->mWalkTime while Mouse Left Dragging, I also set it back to -1 when stop walking to avoid the bug where you have to start walking using the keyboard before being able to walk dragging the mouse under eAthena.
2010-01-18Unified BeingManager::findNearestLivingBeing for eAthena and manaservThorbjørn Lindeijer1-11/+10
It now always works with pixels.
2010-01-13Adds a follow manager for usersBlueSansDouze1-0/+1
Right click contextual menu on player "follow" entry Cancel the following by moving with mouse or keys Adds a special behavior for map changes
2010-01-11Cleanup GUI classesJared Adams1-4/+4
Moved remaining widgets into widgets folder, standardized include order, moved TextRenderer out.
2010-01-10Change code styleAndrei Karas1-4/+5
2010-01-09Add special map mode.Andrei Karas1-2/+20
This mode hide big map objects and show collisions.
2009-12-19Allow the player to move using the mouse at startupFreeyorp1-1/+1
Previously, the player had to move using the keyboard before movement with the mouse was possible
2009-10-29Cleaned up the viewport code, when dealing with mouse movement.Bertram1-52/+45
Now, both eAthena and ManaServ clients follow the mouse correctly when it is dragged.
2009-10-29Second round of fine tuning for keyboard movement.Bertram1-1/+12
I just discovered that the X,Y offsets aren't handled the same way between eAthena and Manaserv to draw the player's character. So, this patch hopefully fix the walk on water bug. There are some glitches left: - Like walking diagonally to a blocked corner. - Or Some times the character miss a blocked tile and correct its route. - The character's name is drawn in the wrong place for Manaserv client. - The playerBox draws the player at the wrong location; He's not centered at login and isn't diplayed at all in equipment window... But anyway, it's better than before. I'll go on for some polishing before continuing. Some cleanups are becoming vital for code's understanding.
2009-10-24REplace instances of TMW with ManaJared Adams1-3/+3
2009-10-16Made the keyboard walking pixel exact again.Bertram1-0/+1
What's left is working on player corner handling and directions while walking.
2009-09-21Fix an unused variableJared Adams1-2/+2
2009-09-22Mostly fixed the mouse movement in TMWserv client.Bertram1-8/+2
The only case left in mouse movement is that the client doesn't check for walkability of the destination point when you click on a unwalkable point. Let me explain this NASTY bug: The bug remained in the Being::SetDestination() function, when recalculating the path from tiles to pixels. The changeX and changeY variables went crazy when (endX - startX) gave a negative value. That why the given path became random, and the player went anywhere. This didn't happened to monsters, NPCs, and when walking using the keyboard because the patnodes system isn't used for movement up to 1 tile at a time. I removed some dead code (in viewpoint.cpp), made the keyboard navigation a little bit more bearable, and fixed this client bug. Now, I'll be up to finish fixing the movement system using mouse (What's remaining is a joke next to what I had to do to discover this...), and I'll look at a third time to the keyboard system which is a bit raw, just for now... Regards, P.S.: Kage, I'd like to get a three-cheese pizza!
2009-07-27Makes mX and mY in the being class privateChuck Miller1-10/+0
2009-05-29Some movement fixes for TMWServ build.Chuck Miller1-2/+0
Looked pretty good so I removed annoying debug information. Also should note that movement between two players is still off.
2009-05-25Merge branch '0.0.29'Bjørn Lindeijer1-22/+29
2009-05-25Handle map not found gracefullyBjørn Lindeijer1-22/+29
Instead of shutting down, the client will now draw a gray background. This allows the player to still contact a GM in order to be helped out of the situation. It also helps me warp out of the non-existing map I accidentally warped myself onto. ;)
2009-05-19Fixed targeting and warn on attack-range not being found in itemdb.David Athay1-10/+2
Tried to make the client continue attacking (it does not need to send attack packets, but just continue playing attack animation and sounds). Now logs a warning when a weapon is found without an attack-range (I keep finding weapons with an attack-range of 0 which makes it hard to target monsters).
2009-05-18Added target combatDavid Athay1-6/+2
2009-05-17Enable and fix path drawing for athena.Dennis Friis1-3/+3
Notice that in Being::Logic() we call Being::setPosition() with the added offset of x+16, y+32, this makes both the Vector Being::mPos and Being::mPx / Being::mPy not mean the same as pre-merge client. Thus some effects and code dividing these members with 32 to get the tile coords get wrong results. Perhaps this all these methods of getting x,y on beings should be cleaned up so we have 1 method we settle on and store the sprites' fixed x,y offset on the sprite itself. so we have x + fixed_offset + animation_offset and not all these magic numbers floating around. (cherry picked from commit fc6b38d113e7f78af1075a37e1853e00294742e9)
2009-05-17Enable and fix path drawing for athena.Dennis Friis1-3/+3
Notice that in Being::Logic() we call Being::setPosition() with the added offset of x+16, y+32, this makes both the Vector Being::mPos and Being::mPx / Being::mPy not mean the same as pre-merge client. Thus some effects and code dividing these members with 32 to get the tile coords get wrong results. Perhaps this all these methods of getting x,y on beings should be cleaned up so we have 1 method we settle on and store the sprites' fixed x,y offset on the sprite itself. so we have x + fixed_offset + animation_offset and not all these magic numbers floating around.
2009-05-05Fix the context menu for the storage windowJared Adams1-2/+2
2009-05-01Changed the way beings are handled when clicked on with a TMWServ buildChuck Miller1-8/+16
(mainly talking to NPCs, and attacking Monsters / Players. Though combat is still broken.)
2009-04-15Some PopupMenu cleanups/fixes and additions.Tametomo1-2/+7
Signed-off-by: Tametomo <irarice@gmail.com> Signed-off-by: Bjørn Lindeijer <bjorn@lindeijer.nl>
2009-04-09Made BeingManager methods const where appropriateBjørn Lindeijer1-2/+3
2009-04-09QOAL's do not walk with the mouse while sittingMadCamel1-0/+4
2009-03-27Fixed some positioning issuesBjørn Lindeijer1-1/+1
Started with not being able to click NPCs properly, and I ended up correcting the draw positions of overhead text, targets and sprite ordering. It's now a bit more straight-forward. The position of a being is simply in the middle of the sprite at the bottom. When drawing the sprite, an offset remains because all the sprites are compensating for getting drawn half a tile to the left and one tile up.
2009-03-25Merge branch 'eathena/master'Bjørn Lindeijer1-30/+29
Conflicts: A lot of files.
2009-03-22Merged the tmwserv client with the eAthena clientBjørn Lindeijer1-34/+124
This merge involved major changes on both sides, and as such took several weeks. Lots of things are expected to be broken now, however, we now have a single code base to improve and extend, which can be compiled to support either eAthena or tmwserv. In the coming months, the plan is to work towards a client that supports both eAthena and tmwserv, without needing to be recompiled. Conflicts: Everywhere!
2009-03-06Merge branch 'aethyra/master'Bjørn Lindeijer1-21/+14
Conflicts: src/being.cpp src/being.h src/floor_item.cpp src/floor_item.h src/flooritemmanager.cpp src/gui/inventorywindow.cpp src/gui/inventorywindow.h src/gui/itemcontainer.cpp src/gui/popupmenu.cpp src/net/beinghandler.cpp src/npc.cpp
2009-03-05Made some optimizations based on some profiling done by Octalot, as wellIra Rice1-21/+14
as some other optimizations that I could see that cut down on some unneeded redraws, which in turn improved frame rates slightly. Signed-off-by: Ira Rice <irarice@gmail.com>
2009-02-26Merge branch 'aethyra/master'Bjørn Lindeijer1-10/+19
Conflicts: data/graphics/images/login_wallpaper.png src/being.cpp src/beingmanager.cpp src/engine.cpp src/game.cpp src/gui/buysell.cpp src/gui/buysell.h src/gui/gui.h src/gui/npc_text.cpp src/gui/npc_text.h src/gui/npcintegerdialog.cpp src/gui/npclistdialog.cpp src/gui/npclistdialog.h src/gui/npcstringdialog.cpp src/gui/sell.cpp src/gui/shop.cpp src/gui/table.cpp src/net/beinghandler.cpp src/net/npchandler.cpp src/net/playerhandler.cpp src/npc.cpp src/npc.h src/shopitem.cpp src/shopitem.h src/utils/stringutils.cpp src/utils/stringutils.h src/utils/trim.h
2009-02-24Cleaned up some code, as well as removed redundant talk client requestingIra Rice1-10/+19
(which would happen from using the keyboard instead of the mouse). Signed-off-by: Ira Rice <irarice@gmail.com>
2009-02-20Restore old middle click behaviorJared Adams1-1/+2
2009-02-18Introduced a toLower method and grouped string utilsBjørn Lindeijer1-1/+1
The string utility methods are now grouped together in the stringutils.h header. Also, a toLower method was added for convenience.
2009-02-18Introduced a toLower method and grouped string utilsBjørn Lindeijer1-1/+1
The string utility methods are now grouped together in the stringutils.h header. Also, a toLower method was added for convenience.
2009-02-15Removed unnecessary parenthesis at constructorsBjørn Lindeijer1-1/+1
When not passing any parameters to constructors, there is no reason for using parenthesis.
2009-02-10Fixed header files, as well as removed the unused buddy list class (notIra Rice1-2/+3
useful since buddy lists are tracked through the player relation interface instead) Signed-off-by: Ira Rice <irarice@gmail.com>
2009-02-09Mostly whitespace fixesBjørn Lindeijer1-4/+5
Removed tab characters and trailing spaces and added spaces between "if(", "for(", "while(" and "switch(".
2009-02-09Merged with Aethyra master as of 2009-02-09Bjørn Lindeijer1-7/+1
Conflicts: A lot of files...
2009-02-09Mostly whitespace fixesBjørn Lindeijer1-4/+5
Removed tab characters and trailing spaces and added spaces between "if(", "for(", "while(" and "switch(".
2009-02-09Merged with Aethyra master as of 2009-01-27Bjørn Lindeijer1-170/+65
Conflicts: Almost everywhere.
2009-02-08Mostly fixed a few field values to behave better in Windows, as well asIra Rice1-1/+1
removed the need for sending graphics to the setSpeech function (since it isn't needed) and started actually using the time variable which it's passed (could be set to show the speech longer if the dialog is longer, for example). Signed-off-by: Ira Rice <irarice@gmail.com>
2009-02-07Some more include cleanups.Ira Rice1-1/+0
Signed-off-by: Ira Rice <irarice@gmail.com>
2009-02-04Went through the gui folder and revised the include statements to notIra Rice1-5/+0
include anything not needed by that specific widget or window. This appears to have cleaned up system performance a bit on my current setup, where it went from idling on 45% in game with opengl down to 30% now. Also moved iptostring to the tostring header, as importing all of network.h is a little overkill to use that function, and it goes along with the basic functions that are in that header file anyways. TODO: find out a way to get rid of warnings when a class doesn't use this function. Signed-off-by: Ira Rice <irarice@gmail.com>