Age | Commit message (Collapse) | Author | Files | Lines |
|
Instead of having these three subclasses with minor differences, this
commit merges them back into Being. In the future, we can make Beings
that are talkable to some, attackable by others, etc. This also puts
back support for monster equipment.
Also changes remaining references to Being::Type and the constants to
refer to ActorSprite::Type.
Reviewed-by: Freeyorp
|
|
This commit adds a sprite hierarchy (Sprite->ImageSprite,AnimatedSprite,CompundSprite;
CompoundSprite,Actor->ActorSprite;ActorSprite->Being,FloorItem) to collect common
functionailty into new base classes which will make other Mantis tickets easier to do.
Also allows monsters to use particle effects.
Reviewed-by: Bertram
|
|
The job/class field is used to select the race. If the given race isn't defined,
it falls back on the first race (so servers can use jobs/classes without races).
Also rename job to subtype for Being and subclasses, and begin support for
changing monster and NPC subtypes on the fly (particle effects still need to be
reset when they change).
Reviewed-by: Bertram
|
|
Themes can now control the colors they use. Colors in the Viewport (being
names, particles, etc) can still be changed by the user. Also make
ProgressBars more easily colored. DyePalette was made more flexible in the
process.
Also fixes comparing strings of different lengths insensitively.
Reviewed-by: Thorbjørn Lindeijer
|
|
Reviewed-by: Jared Adams
|
|
|
|
|
|
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 )
|
|
|
|
are enabled or not in a static member of class Particle instead of an instanced member of Being.
|
|
Move hair changes back over to them; related server change was reverted.
Also move NPCs back over to extending Player. NPCs will have equipment
in the future too, but for now, disable that part while we finish the
system.
|
|
Move stuff only needed for Players into Player (like slots and sprite
limits). Move name handling into Being (no need for three copies of
this code). Clean up terminology (including Map terminology). Remove
hair-related variables.
|
|
No need for NPCs to inherit from Player. Player has functions NPC
doesn't need and overrides that NPC doesn't need. This change reduces
the number of functions needed to be overrided by NPC.
|
|
|
|
~Being does this too, so let's leave it there.
|
|
Also add support for the new TMWServ NPC packets
|
|
We don't use underscores in the filenames generally, and let's be
consistent on that matter.
|
|
|
|
eAthena NPC handler has been implemented and is being used for NPC
interraction.
|
|
Now that messages can be sent without requiring a pointer to the
Network instance, a lot of cleanup was possible.
|
|
Now the instance doesn't need to be passed into the MessageOut class
anymore. Expect a lot of cleanup in the next commit.
|
|
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.
|
|
Also made mPx and mPy private and synchronize with mPos on
setPosition(). The side effects of setting destination and clearing the
path have been removed from setPosition(). Only the tmwserv
PlayerHandler seemed to rely on that feature.
Mantis-issue: 672
|
|
|
|
Conflicts:
A lot of files.
|
|
Also fix several instances where the same net handler was being used for
both servers, and a few other related oddities.
|
|
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!
|
|
This patch lets all being derivatives use the palette to set their
name's colors. Text Particle Effects all respect the new settings. Some
widgets were updated to use the colors.
|
|
Using unsigned rarely makes sense, especially when the server doesn't
use it either. Other uses of unsigned should be reviewed.
In all other cases, int is the fastest integer type on any architecture.
Using 8 or 16 bits can basically only be a memory optimization.
|
|
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
|
|
Loosely based on TMW commit f04a8713ffc83db8b3dc4a472b28aad25a2b2bd1
Signed-off-by: Ira Rice <irarice@gmail.com>
|
|
Based on commit a1e483913672e55704e8fbafeff5ea0ccc0c9b07 from Aethyra.
|
|
The Being ID is used instead, as that is all that was ever really
needed.
|
|
The BeingManager will clean it up when it's next cleared. One hanging
Being isn't too much. A reference count system like resources use might
be a better way to handle Beings.
|
|
Based on TMW commit a996d4bff3cc5a35ee5cdb6cb5bdef920cf44120
Signed-off-by: Ira Rice <irarice@gmail.com>
|
|
|
|
Only checks in these two palces for now, as missing network in the
others would indicate a design flaw.
|
|
|
|
(which would happen from using the keyboard instead of the mouse).
Signed-off-by: Ira Rice <irarice@gmail.com>
|
|
Let it be set by the netcode if the NPC responds. This caused a movement
bug if they didn't.
|
|
Let it be set by the netcode if the NPC responds. This caused a movement
bug if they didn't.
|
|
It was for testing and shouldn't have been committed
|
|
|
|
Conflicts:
src/gui/npc_text.cpp
src/gui/npc_text.h
src/gui/npcintegerdialog.cpp
src/gui/npclistdialog.cpp
src/gui/npcstringdialog.cpp
src/net/npchandler.cpp
src/npc.cpp
|
|
done to ensure that the client doesn't crash if the target dies and is
removed from the map (since target drawing is based off of the specific
target reporting its x and y coordinates).
Signed-off-by: Ira Rice <irarice@gmail.com>
|
|
When an NPC got deleted it would reset the player target. I'm assuming
what was meant was to reset the target when the deleted NPC was the
target.
|
|
|
|
When an NPC got deleted it would reset the player target. I'm assuming
what was meant was to reset the target when the deleted NPC was the
target.
|
|
And keep the text dialog open for the whole transaction, logging user
input and keep a full record of text from the NPC (for the current
transaction only).
|