Age | Commit message (Collapse) | Author | Files | Lines |
|
Reviewed-by: Chuck Miller
|
|
This reverts commit 67e678094b9fddd21fb3c690130e772937ab2746.
Conflicts:
src/gui/gui.cpp
src/gui/viewport.cpp
|
|
This reverts commit d194ea8220658b6ef84522f01fa3cf0d0200545e.
|
|
|
|
|
|
Reviewed-by: Chuck Miller
|
|
Reviewed-by: Thorbjørn Lindeijer
Reviewed-by: Chuck Miller
|
|
Signed-off-by: Jared Adams <jaxad0127@gmail.com>
|
|
Also make storage under eAthena more flexible.
Reviewed-by: Dennis Friis
|
|
Signed-off-by: Jared Adams <jaxad0127@gmail.com>
|
|
|
|
|
|
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: ...
|
|
|
|
|
|
they happened within a contained widget.
Signed-off-by: Tametomo <irarice@gmail.com>
|
|
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.
|
|
Also added the update copyright tool from the Wormux Team.
( And not forgetting credit's due. :P )
|
|
|
|
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.
|
|
|
|
|
|
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.
|
|
It now always works with pixels.
|
|
Right click contextual menu on player "follow" entry
Cancel the following by moving with mouse or keys
Adds a special behavior for map changes
|
|
Moved remaining widgets into widgets folder, standardized include order, moved TextRenderer out.
|
|
|
|
This mode hide big map objects and show collisions.
|
|
Previously, the player had to move using the keyboard before movement with the
mouse was possible
|
|
Now, both eAthena and ManaServ clients follow the mouse correctly
when it is dragged.
|
|
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.
|
|
|
|
What's left is working on player corner handling and directions while walking.
|
|
|
|
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!
|
|
|
|
Looked pretty good so I removed annoying debug information.
Also should note that movement between two players is still off.
|
|
|
|
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. ;)
|
|
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).
|
|
|
|
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)
|
|
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.
|
|
|
|
(mainly talking to NPCs, and attacking Monsters / Players. Though combat is still broken.)
|
|
Signed-off-by: Tametomo <irarice@gmail.com>
Signed-off-by: Bjørn Lindeijer <bjorn@lindeijer.nl>
|
|
|
|
|
|
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.
|
|
Conflicts:
A lot of files.
|