Jump to content
Eternal Lands Official Forums

Florian

Members
  • Content count

    940
  • Joined

  • Last visited

Posts posted by Florian


  1. No Florian, you don't understand. Did you try the patch? Did you see what the player character looks like? That's what i'm talking about, the REAL animations, not the rotation that is given to both models as a whole.

    Well, then we're talking about different things. I don't like the static 45/60/whatever angle. All players look exactly the same then, and that's boring.

    See my bag variety patch, a small change to the bag position adds a lot of variation, and that's more vivid, more real.


  2. That wouldn't work because the animations are made to a specific angle in the animation file, not the code.
    Currently, when a fight starts while on horse a 45 degrees counterclockwise rotation is performed to put fighters face to face. I'm not sure if 45 is nice looking..I tried 90 and it is too much, maybe 60 is ok...however it can be changed in actors.h at line 450.

  3. Currently, when a fight starts while on horse a 45 degrees counterclockwise rotation is performed to put fighters face to face. I'm not sure if 45 is nice looking..I tried 90 and it is too much, maybe 60 is ok...however it can be changed in actors.h at line 450.

    Maybe random_min_max(35,75) would be a solution?


  4. There's no difference between the official 1.8 release and the CVS regarding Eye Candy.

     

    It does not always happen, only if particles fly right throught the effect's center, and the distance between the center and the particle is lower than the accuracy of calculation and is very very near to zero. In 32bit mode, that's 0. In 64bit mode, that's NaN.

    I don't have an AMD64 to test and debug it, sorry.

     

    /EDIT: does ubuntu 64bit define X86_64?


  5. my brand new gcc 4.4 complains about dds.c

     

    dds.c: In function 'unpack_dxt_interpolated_alpha':

    dds.c:147: warning: array subscript is above array bounds

    dds.c:147: warning: array subscript is above array bounds

    dds.c: In function 'unpack_ati1':

    dds.c:147: warning: array subscript is above array bounds

    dds.c:147: warning: array subscript is above array bounds

    dds.c: In function 'unpack_ati2':

    dds.c:147: warning: array subscript is above array bounds

    dds.c:147: warning: array subscript is above array bounds

    dds.c:147: warning: array subscript is above array bounds

    dds.c:147: warning: array subscript is above array bounds

    dds.c: In function 'unpack_dxt5':

    dds.c:147: warning: array subscript is above array bounds

    dds.c:147: warning: array subscript is above array bounds


  6. What am I doing wrong?

       patch -p0 < ./randombagspatch
      patching file bags.c
      patch: **** malformed patch at line 12: // forward declarations

    Not sure how tough it is to change, but updating cvs is easier for me than patching files like this.

    The patch is created with eclipse, maybe the format for the patch command line utility differs ...

    Actually I don't want to commit untested code into CVS :) I don't know if it compiles.


  7. Patch to remove x,y offset

     

    ### Eclipse Workspace Patch 1.0
    #P elc
    Index: bags.c
    ===================================================================
    RCS file: /cvsroot/elc/elc/bags.c,v
    retrieving revision 1.63
    diff -u -r1.63 bags.c
    --- bags.c	4 Mar 2009 07:05:41 -0000	1.63
    +++ bags.c	12 Mar 2009 17:53:46 -0000
    @@ -44,8 +44,8 @@
    
    // forward declarations
    void draw_pick_up_menu();
    -float get_bag_offset_x(float pos_x, float pos_y, int bag_id, int map_x, int map_y);
    -float get_bag_offset_y(float pos_x, float pos_y, int bag_id, int map_x, int map_y);
    +// float get_bag_offset_x(float pos_x, float pos_y, int bag_id, int map_x, int map_y);
    +// float get_bag_offset_y(float pos_x, float pos_y, int bag_id, int map_x, int map_y);
    float get_bag_rotation(float pos_x, float pos_y, int bag_id, int map_x, int map_y);
    float get_bag_tilt(float pos_x, float pos_y, int bag_id, int map_x, int map_y);
    
    @@ -60,7 +60,7 @@
    	*out=0;
    }
    
    -float get_bag_offset_x(float pos_x, float pos_y, int bag_id, int map_x, int map_y)
    +/*float get_bag_offset_x(float pos_x, float pos_y, int bag_id, int map_x, int map_y)
    {
    	char str[64];
    	MD5 md5;
    @@ -78,9 +78,9 @@
    	return (sinf(powf(digest[0], 2.0f)) + sinf(powf(digest[1], 2.0f)) + sinf(
    		sqrtf(abs((float) digest[2]))) + cosf((float) digest[3]) + sinf(
    		(float) digest[4])) / 80.0f * ((((int) abs(digest[5])) % 3 == 0) ? 1.0f : -1.0f);
    -}
    +}*/
    
    -float get_bag_offset_y(float pos_x, float pos_y, int bag_id, int map_x, int map_y)
    +/*float get_bag_offset_y(float pos_x, float pos_y, int bag_id, int map_x, int map_y)
    {
    	char str[64];
    	MD5 md5;
    @@ -98,7 +98,7 @@
    	return (cosf(powf(digest[1], 2.0f)) + cosf(powf(digest[2], 2.0f)) + cosf(
    		sqrtf(abs((float) digest[3]))) + sinf((float) digest[4]) + cosf(
    		(float) digest[5])) / 80.0f * ((((int) abs(digest[6])) % 3 == 0) ? 1.0f : -1.0f);
    -}
    +}*/
    
    float get_bag_rotation(float pos_x, float pos_y, int bag_id, int map_x, int map_y)
    {
    @@ -156,8 +156,8 @@
    	x=(float)bag_x/2;
    	y=(float)bag_y/2;
    	//center the object (slightly randomized)
    -	x = x + 0.25f + get_bag_offset_x(bag_x, bag_y, bag_id, tile_map_size_x, tile_map_size_y);
    -	y = y + 0.25f + get_bag_offset_y(bag_x, bag_y, bag_id, tile_map_size_x, tile_map_size_y);
    +	x = x + 0.25f; // + get_bag_offset_x(bag_x, bag_y, bag_id, tile_map_size_x, tile_map_size_y);
    +	y = y + 0.25f; // + get_bag_offset_y(bag_x, bag_y, bag_id, tile_map_size_x, tile_map_size_y);
    
    	// DEBUG
    	// printf("bag <%i> (%f,%f) rot %f tilt %f\n", bag_id, x, y,
    @@ -228,8 +228,8 @@
    		x=(float)bag_x/2;
    		y=(float)bag_y/2;
    		//center the object (slightly randomized)
    -		x = x + 0.25f + get_bag_offset_x(bag_x, bag_y, bag_id, tile_map_size_x, tile_map_size_y);
    -		y = y + 0.25f + get_bag_offset_y(bag_x, bag_y, bag_id, tile_map_size_x, tile_map_size_y);
    +		x = x + 0.25f; // + get_bag_offset_x(bag_x, bag_y, bag_id, tile_map_size_x, tile_map_size_y);
    +		y = y + 0.25f; // + get_bag_offset_y(bag_x, bag_y, bag_id, tile_map_size_x, tile_map_size_y);
    
    		// DEBUG
    		// printf("bag <%i> (%f,%f) rot %f tilt %f\n", bag_id, x, y,

     

    Please test it, I can't :P


  8. Is it possible to have a bag pushed off center to always be in front of where the character is facing? e.g. if I face North and drop a bag, that bag would be biased to the North of the tile. If I pick up that bag and spin to head East, a bag dropped on this same tile would be biased East.

     

    Hmm, there is no direct connection from actor to bag, especially if the actor gets removed before the bag drops. (Maybe a "removed actor cache" would help ...).

     

    One other possible idea (not sure if it would look terrible, or be too tough to implement): is it possible to have randomly displayed skins (maybe 4 slightly different bag styles) randomly chosen when a bag is created?

     

    I could easily change the color of the bag texture slightly, I'll try that idea when I get home.

     

    What about the bag rotation? Should that stay in the code when x,y offset and tilt are removed?


  9. I'm currently on holiday, so I don't have access to some development machine ...

     

    Eh, I'd suggest just taking it out all together. Isn't there some other important projects to work on? This was seems kind of meaningless and fairly annoying.

     

    I think it's useful. I'm a voluntary developer. I contribute stuff I think the game needs and stuff my limited programming knowledge allows me to implement. When I have an idea I look at the source code and try to find an implementation I can actually complete. Or other people, granted, mostly from the German EL community, tell me their ideas.

     

    I don't have the time and/or the motivation to tackle huge projects like finishing the emotions, porting the new gfx engine to mac, and what else "needs to be done".

     

    ... but I don't know that random positioning can ever look universally "good" while characters can face 8 different directions on a given tile.

     

    More variety for the bags doesn't solve that problem, but softens it.

    People sitting "in" a bag, in other words: no collision detection for objects, is a far more basic problem in EL.

     

    So, if there's consens in the community to remove bag variety, then remove it.

×