Jump to content
Eternal Lands Official Forums
sgik

Minimap Mule Mote Miscolorization

Recommended Posts

A person in mule form shows on the minimap as a yellow dot, not a white one. (My guess is that a phoenix, and possibly mounted person, may appear the same way.)

Share this post


Link to post
Share on other sites

phoenix does yes, people on horses appear as white or light blue if on buddies list

 

Would be nice to have the yellow changed to white/blue I agree, not sure if bug or not though

Share this post


Link to post
Share on other sites

Not a bug imo, a mule is an animal.

But the mini-map is not showing genus and species, it's basically showing who controls the entity: player (plus ally relationships), NPC (fixed, interactive), or creature (random, mobile). A mule is controlled by an player, not the computer.

 

Besides, something like a goblin is no more an "animal" than several of the playable races. So saying a goblin should be one color and a draegoni or orchan a different color because a goblin is an "animal" makes no sense.

Share this post


Link to post
Share on other sites

Bonus stealth factor. Someone stalking players in pk maps will be looking for white dots.

(Yeah, I'm making shit up, but could be true if phoenix for example were deemed useful in some way.)

Share this post


Link to post
Share on other sites

For me its a bug, perhaps due to such forms not being around when the mini-map was created. There is a possible fix using an additional test for animals but I am not too sure of all the possible conditions. Is anyone familiar with the states of actor.kind_of_actor and how thy are used?

diff --git a/minimap.c b/minimap.c
index d6a0989..14f65cf 100644
--- a/minimap.c
+++ b/minimap.c
@@ -176,7 +176,7 @@ static __inline__ void draw_actor_points(float zoom_multip, float px, float py)
                                                colors_list[color].b1);
                                }
                        }
-                       else if(!a->is_enhanced_model)
+                       else if((!a->is_enhanced_model) && (a->kind_of_actor != HUMAN))
                        {
                                if (a->dead)
                                        elglColourN("minimap.deadcreature");
Edited by bluap
Make the patch code more readable.

Share this post


Link to post
Share on other sites

From the little bit I gathered (mostly from the client source...),
(kind_of_actor == HUMAN) for mules, and I'd expect also for phoenix.

What you would have to verify: what is the value of is_enhanced_model for a mule:
the server sends the information for a mule char in a ADD_NEW_ACTOR message,
for 'normal' humans, a ADD_NEW_ENHANCED_ACTOR message is sent;

and from a quick look through the client code the 'enhanced' part is only created/filled in

from an ADD_NEW_ENHANCED_ACTOR message.

(and should that be an AND or an OR in your patch?)

Share this post


Link to post
Share on other sites

Re: Code to determine color of char.

 

I would suggest using the same code that determines the color of the name that appears above the entity in the main window. I did notice that it's still white on muled (and mounted) chars. Only exception is green dot for the char whose minimap it is.

Share this post


Link to post
Share on other sites

There's a second 'exception': names of characters in your buddy list are light blue..

And that one requires more work (the client knows wich character represents the owner, so that's a simple int comparison).

 

I guess I'll leave deciding how to code it to those that actually work with that code ;)

Share this post


Link to post
Share on other sites

I tested with a mule that just happened to be around. It was coloured yellow on the minimap and so (!a->is_enhanced_model) is true for mules. Therefore, an OR in that statement would not help. Adding the AND (a->kind_of_actor != HUMAN) stopped the yellow colour decision and so the mule was a white dot on the minimap. However, I suspect that a mule buddy or a PKABLE mule (is that possible?) would not get tagged correctly. There looks to be many combinations and without a definitive explanation of the actor values, I do not think I could code a fully working system.

 

Perhaps Radu could let us know how the actor values change.

Edited by bluap

Share this post


Link to post
Share on other sites

A PKable mule is possible, if one of the top mods makes that particular player PKable, and for some reason they're a mule, or phoenix.

 

There's Total War as well, though that is currently shut down and has been for a long time, unknown if it'll return.

 

(However, it's been years since I've seen someone made PKable, possibly before even mules were added. So it's just "technically" possible.)

Edited by Burn

Share this post


Link to post
Share on other sites

I tested with a mule that just happened to be around. It was coloured yellow on the minimap and so (!a->is_enhanced_model) is true for mules. Therefore, an OR in that statement would not help. Adding the AND (a->kind_of_actor != HUMAN) stopped the yellow colour decision and so the mule was a white dot on the minimap. However, I suspect that a mule buddy or a PKABLE mule (is that possible?) would not get tagged correctly. There looks to be many combinations and without a definitive explanation of the actor values, I do not think I could code a fully working system.

 

Perhaps Radu could let us know how the actor values change.

Sorry, I missed the "!" in the test, my bad :/

Share this post


Link to post
Share on other sites

I did exactly the same when I checked what I posted. I should have used <code> rather than <quote>. In fact I'll go back and change it now. :)

Share this post


Link to post
Share on other sites

 

There's a second 'exception': names of characters in your buddy list are light blue..

 

I see nothing wrong with your buddies appearing as light blue dots on the minimap. Sharing code between the two has three advantages: 1. The name color and dot color will always match (with the one exception I mentioned earlier). 2. It cuts down on code size. 3. If there is a bug in which color is used, it has to be fixed in only one place.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×