Current master post-4.2.2

Collapse
X
 
  • Time
  • Show
Clear All
new posts

  • whartung
    replied
    Originally posted by MattB
    The floor is also harder than most orcs ;-)
    But the tangential energies of floor impact combined with the integral flex ratios of the arrow material should greatly reduce breakage.

    No doubt there should be some friction model based on the floor space tile type to better model the drag coefficient of the arrow (no doubt related to the fletching material, you know, in for a penny and all) to better place the arrow down the hall as it goes sliding after contact.

    I leave it as an exercise for others to discern whether there should be any skipping.

    Leave a comment:


  • MattB
    replied
    The floor is also harder than most orcs ;-)

    Leave a comment:


  • will_asher
    replied
    Originally posted by fph
    Walls are harder than orcs, so they break arrows, too.
    But if it runs out of range and lands on the floor it shouldn't break.

    Leave a comment:


  • fph
    replied
    Walls are harder than orcs, so they break arrows, too.

    Leave a comment:


  • will_asher
    replied
    I just noticed that in the description of arrows it says "35% chance of breaking on impact" but IIRC, the code has a chance of the arrows breaking even if they don't hit anything. Which is it supposed to be? on impact or on firing?

    Leave a comment:


  • Nick
    replied
    Originally posted by PowerWyrm
    You didn't, Fizzix did
    Well, fizzix did all the work of designing the new method, but I made the tiny change that made it actually appear in the game...

    Leave a comment:


  • PowerWyrm
    replied
    Originally posted by Nick
    Neat, I forgot I did that
    You didn't, Fizzix did

    Leave a comment:


  • Nick
    replied
    Originally posted by PowerWyrm
    IIRC that's a new feature. Looking at the code, the summon function now has a "call" parameter which uses a new method of summoning ("calls out" a monster that is present on the level) and this parameter is set to "true" 25% of the time randomly.
    Neat, I forgot I did that

    Leave a comment:


  • MattB
    replied
    Originally posted by PowerWyrm
    IIRC that's a new feature. Looking at the code, the summon function now has a "call" parameter which uses a new method of summoning ("calls out" a monster that is present on the level) and this parameter is set to "true" 25% of the time randomly.
    Oh. Fair enough then.
    That might call an end to my traditional level-ending of standing on the stairs with a staff of summoning trying to call up some cheap low-level uniques.

    Leave a comment:


  • PowerWyrm
    replied
    Using this code everywhere panel dimensions (in particular "screen_wid / 2" occurences) are used fixes the problem:

    Code:
    int screen_hgt, screen_wid;
        int panel_wid, panel_hgt;
    
        screen_hgt = p->screen_rows / p->tile_hgt;
        screen_wid = p->screen_cols / p->tile_wid;
    
        panel_wid = screen_wid / 2;
        panel_hgt = screen_hgt / 2;
    
        /* Paranoia */
        if (panel_wid < 1) panel_wid = 1;
        if (panel_hgt < 1) panel_hgt = 1;
    The only remaining issue with this is that the @ isn't visible if panel_hgt = 1 (it's displayed one line below).

    Leave a comment:


  • PowerWyrm
    replied
    If you try to use the "l"ook command when using 16x16 tile size and you end up with a panel of size 0, the command will also loop endlessly.

    Leave a comment:


  • PowerWyrm
    replied
    Originally posted by MattB
    I just TO'd the Balrog of Moria, then summoned him on the same level using a staff of summoning.
    Should that happen?
    Feels weird to me...
    IIRC that's a new feature. Looking at the code, the summon function now has a "call" parameter which uses a new method of summoning ("calls out" a monster that is present on the level) and this parameter is set to "true" 25% of the time randomly.

    Leave a comment:


  • MattB
    replied
    I just TO'd the Balrog of Moria, then summoned him on the same level using a staff of summoning.
    Should that happen?
    Feels weird to me...

    Leave a comment:


  • PowerWyrm
    replied
    Also the sector displayed makes absolutely no sense...

    It should start at [0,0] if you're in the northwesternmost panel and should be increased by 1 each time you move east or south from there. See MAngband code:

    Code:
    /* Start at current panel */
    	y2 = p_ptr->panel_row;
    	x2 = p_ptr->panel_col;
    
    /* Apply the motion */
    	y2 += ddy[dir];
    	x2 += ddx[dir];
    
    /* Prepare to ask which way to look */
    	sprintf(out_val,
    	        "Map sector [%d,%d], which is%s your sector.  Direction?",
    	        y2, x2, tmp_val);
    
    /* Set the panel location */
    	p_ptr->panel_row = y2;
    	p_ptr->panel_col = x2;
    Last edited by PowerWyrm; April 20, 2021, 10:36.

    Leave a comment:


  • PowerWyrm
    replied
    - open client
    - set tile size to 16x16
    - use "l"ook command
    - crash

    In do_cmd_locate():

    Code:
    int panel_hgt = (int)(PANEL_SIZE / tile_height);
    int panel_wid = (int)(PANEL_SIZE / tile_width);
    
    strnfmt(out_val, sizeof(out_val),
    		        "Map sector [%d,%d], which is%s your sector.  Direction?",
    		        (y2 / panel_hgt), (x2 / panel_wid), tmp_val);
    But PANEL_SIZE = 11, so if you use tile size greater than 11 the values for panel_hgt and panel_wid will be 0 and will provoke a division by zero error in the following line...

    Leave a comment:

Working...
😀
😂
🥰
😘
🤢
😎
😞
😡
👍
👎
☕