summaryrefslogtreecommitdiff
path: root/src/gui/viewport.cpp
AgeCommit message (Collapse)AuthorFilesLines
2010-03-02Revert "Merge WindowContainer into Viewport and remove extra members"Jared Adams1-30/+26
This reverts commit 67e678094b9fddd21fb3c690130e772937ab2746. Conflicts: src/gui/gui.cpp src/gui/viewport.cpp
2010-03-02Revert "Fix using custom cursors"Jared Adams1-5/+2
This reverts commit d194ea8220658b6ef84522f01fa3cf0d0200545e.
2010-03-01Fix using custom cursorsJared Adams1-2/+5
2010-03-01Simplify BeignPopup and therefore ViewportJared Adams1-7/+3
2010-03-01Merge WindowContainer into Viewport and remove extra membersJared Adams1-29/+39
Reviewed-by: Chuck Miller
2010-03-01Hide BeingPopup when mouseover WindowsJared Adams1-0/+4
Reviewed-by: Thorbjørn Lindeijer Reviewed-by: Chuck Miller
2010-02-28Add some new mousers and simplify related codeidiomatic1-25/+46
Signed-off-by: Jared Adams <jaxad0127@gmail.com>
2010-02-24Move StorageWindow to instancing intead of globalJared Adams1-2/+3
Also make storage under eAthena more flexible. Reviewed-by: Dennis Friis
2010-02-23Add BeingPopup hiding.Andrei Karas1-2/+2
Signed-off-by: Jared Adams <jaxad0127@gmail.com>
2010-02-22Cleanup some popup-related code and make sure BeingPopup is includedJared Adams1-1/+4
2010-02-21Handle packet 0x0195, and shows player's party name in a popupChuck Miller1-3/+6
2010-02-21Made tick counter and framerate limiter work during login sequenceThorbjørn Lindeijer1-1/+1
Much code was moved from main() to the new Client::exec(). This new event loop now integrates with the Game class, so that the tick counter and framerate limiter apply universally. The Client class is also responsible for some things that used to be global variables. Mantis-issue: ...
2010-02-22Modify copyright headersFreeyorp1-1/+2
2010-02-20License header update for The Mana ClientThorbjørn Lindeijer1-4/+3
2010-02-14Fixed Viewport from acknowledging clicks from widgets on top of it whenTametomo1-0/+3
they happened within a contained widget. Signed-off-by: Tametomo <irarice@gmail.com>
2010-02-13Make NPC dialogs instance instead of globalJared Adams1-1/+1
This change allows players to talk to multiple NPCs at a time (if the server agrees). Manaserv's netcode allows multiple commerce instances too. eAthena's is limited to one commerce instance, due to protocol limitations.
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!