Age | Commit message (Collapse) | Author | Files | Lines |
|
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.
|
|
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!
|
|
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
|
|
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>
|
|
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
|
|
(which would happen from using the keyboard instead of the mouse).
Signed-off-by: Ira Rice <irarice@gmail.com>
|
|
|
|
The string utility methods are now grouped together in the stringutils.h
header. Also, a toLower method was added for convenience.
|
|
The string utility methods are now grouped together in the stringutils.h
header. Also, a toLower method was added for convenience.
|
|
When not passing any parameters to constructors, there is no reason for
using parenthesis.
|
|
useful since buddy lists are tracked through the player relation
interface instead)
Signed-off-by: Ira Rice <irarice@gmail.com>
|
|
Removed tab characters and trailing spaces and added spaces between
"if(", "for(", "while(" and "switch(".
|
|
Conflicts:
A lot of files...
|
|
Removed tab characters and trailing spaces and added spaces between
"if(", "for(", "while(" and "switch(".
|
|
Conflicts:
Almost everywhere.
|
|
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>
|
|
Signed-off-by: Ira Rice <irarice@gmail.com>
|
|
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>
|