Coder Social home page Coder Social logo

coab's People

Contributors

simeonpilgrim avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

coab's Issues

Encamp - Alter - Order does not seem to work

What steps will reproduce the problem?
1. Choose Encamp-Alter-Order
2. Try to Select a char with S or Enter

What is the expected output? What do you see instead?
Should accept select and prompt for new place for given char. Instead,
nothing happens. Exit for E (maybe Esc as well, didn't try) works.

What version of the product are you using? On what operating system?
SVN head

Please provide any additional information below.
Will look into it tomorrow, hopefully.

Original issue reported on code.google.com by surrano on 17 Sep 2009 at 9:34

MSI Installer not working on WinXP/64

Eki says:

The MSI installer does not seem to work with Windows XP Pro x64.
I only see a popup window for a split of a second and then the installer
quits

Original issue reported on code.google.com by simeon.pilgrim on 30 Mar 2008 at 8:37

Random Crash

Curse of the Azure Bonds 1.1.0
6/06/2010 8:41:17 PM
Unhandled exception: System.NullReferenceException: Object reference not set to 
an instance of an object.
   at Classes.Sys.ArrayToShort(Byte[] data, Int32 offset)
   at Classes.DaxBlock..ctor(Byte[] pic_data, Int32 masked, Int32 mask_color)
   at Classes.Combat.CombatIcon.LoadIconHelper(Int32 maskColor, Int32 masked, Int32 block_id, String file_text)
   at Classes.Combat.CombatIcon.LoadIcons(Int32 maskColor, Int32 masked, String file_text, Int32 normal_id, Int32 attack_id)
   at engine.ovr034.chead_cbody_comspr_icon(Byte combat_icon_index, Int32 block_id, String fileText)
   at engine.ovr003.CMD_LoadMonster()
   at engine.CmdItem.Run()
   at engine.ovr003.RunEclVm(UInt16 offset)
   at engine.ovr003.sub_29758()
   at engine.seg001.PROGRAM()
   at Main.Program.EngineThread()
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

Original issue reported on code.google.com by simeon.pilgrim on 7 Jun 2010 at 7:51

Crashing in combat

It does sometimes crash in the middle of a battle if I try something it
doesn’t like:

like manually aiming off the grid
or accidentally pressing esc 
or other random things

-Found by Jakey

Original issue reported on code.google.com by simeon.pilgrim on 27 Aug 2009 at 2:33

Random Crash

Curse of the Azure Bonds 1.1.0
4/06/2010 12:16:36 PM
Unhandled exception: System.IndexOutOfRangeException: Index was outside the 
bounds of the array.
   at engine.ovr003.CMD_Spell()
   at engine.CmdItem.Run()
   at engine.ovr003.RunEclVm(UInt16 offset)
   at engine.ovr003.sub_29758()
   at engine.seg001.PROGRAM()
   at Main.Program.EngineThread()
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()



Original issue reported on code.google.com by simeon.pilgrim on 7 Jun 2010 at 7:50

range attacks can pass walls

ranged weapons work through walls when then shouldn't

Original issue reported on code.google.com by simeon.pilgrim on 2 May 2008 at 4:29

When run, the main form stays blank

When run for the first time, the main form with open, and stay blank.

The per user debug setting needs to be set for the working directory to be
the same as where your original PC Curse game is install.

In the future, the game will ask for this location on first execution.


Original issue reported on code.google.com by simeon.pilgrim on 25 Sep 2006 at 9:21

1.0.15 crashes after losing a battle

What steps will reproduce the problem?
1. Get in combat 
2. Lose
3. Crash


Original issue reported on code.google.com by simeon.pilgrim on 30 Jan 2009 at 9:23

Crimdrac "script engine" bugs

Paul reports, in save game E:

When encountering Crimdrac the Dracolich, there is one bug in the “script
engine”. You are given the option to surrender to him or fight him. I
fought him and killed him. The game proceeds along as if I surrendered to
him, which is somewhat amusing. You then encounter Dracandros, and
navigating through the options, I chose to fight the black dragons. The
game crashes when the black dragons do something, which I presume to be
using their breath weapon.

Original issue reported on code.google.com by simeon.pilgrim on 21 May 2008 at 4:52

Navigation in horizontal menus does not work

What steps will reproduce the problem?
1. Bring game to any state where there is a horizontal menu (camp, town,
combat, etc... not sure about command, though)
2. Try to navigate with comma and dot.
3.

What is the expected output? What do you see instead?
Comma should navigate to the left and dot to the right in the menu.
Instead, nothing happens.

What version of the product are you using? On what operating system?
SVN head

Please provide any additional information below.
Problem is that seg043.GetInputKey returns 32 for several characters,
including comma and dot.

Source of problem seems to be in Keyboard.cs:

        public static ushort KeyToIBMKey(Keys key)
        {
            ...

            return 0x0020;
        }

Adding these lines before the final return solves the problem:

            if (key == Keys.Oemcomma)
            {
                return 0x2c;
            }

            if (key == Keys.OemPeriod)
            {
                return 0x2e;
            }

By the way, I think it would be more readable to use switch instead of the
majority of the if's.

Original issue reported on code.google.com by surrano on 18 Sep 2009 at 10:13

Combat icon drawing of downed players

I the icon for downed players draws the grey square over walls, and it
looks bad.

I have observed the dos version doing this also. So this is an enhancement. 

Original issue reported on code.google.com by simeon.pilgrim on 7 Apr 2008 at 2:26

Magically killed monsters still around.

oes killed with fireball or other magic spells don't show up as crossbones
icons and disappear from the field.  they are invisible until you walk past
or into them. if they are directly in your path, you will attack them and
then they will show crossbones and disappear.  If you go past them, dead
and dying foes will attack you as if they were alive and sometimes hit. 
they can be taken off the board with non-magical missiles too.

Original issue reported on code.google.com by simeon.pilgrim on 27 Aug 2009 at 10:25

the moander sigil disappering happens too quick

the fading of the Moander sigil is very slow in the dos version, yet in the
port, you just see the end result. 

This should be slowed down.

Original issue reported on code.google.com by simeon.pilgrim on 7 Apr 2008 at 2:21

Enable Multiple Dual-Class

Type-Enhancement

What steps will reproduce the problem?
1. Create human character.
2. Change classes.
3. Advance beyond old class level.

What is the expected output? What do you see instead?
In AD&D 1st Ed the Dual class is implicitly meant for maximum two classes.
In AD&D 2nd Ed this restriction is lifted.
In Curse, the Human Change Classes does not appear if you have an old class
already. In Secret and POD the menu item is there but says the character
"does not qualify".
There are two possible enhancements here:
A) Make the menu item appear and provide appropriate message if the
character does not qualify (e.g. not human, already changed class, level
insufficient, primary attributes insufficient, etc... don't know if there
are more). 
B) Make the game behave like AD&D 2Ed in this aspect, i.e. allow multiple
changes.

What version of the product are you using? On what operating system?
1.0.20 on Win XP

Please provide any additional information below.
References are from SVN dated 11 Sep 2009.
Notes marked with //S:

A) seems like transferring condition checks from here:
ovr018.cs, line 89:
                        if ((gbl.area2_ptr.training_class_mask > 0 ||
Cheats.free_training == true) &&
                            ovr026.IsHuman(gbl.player_ptr) &&

ovr026.HumanFirstOldClass_Unknown(gbl.player_ptr) == ClassId.unknown)
                        {
                            menuFlags[allow_multiclass] = true;
                        }
                        else
                        {
                            menuFlags[allow_multiclass] = false;
                        }
//S: menuFlags[allow_multiclass] should always be true.

to here:
ovr018.cs, line 197:
                        case 'H':
                            if (menuFlags[allow_multiclass] == true)
                            {
                                ovr026.multiclass(gbl.player_ptr);
                            }
                            break;

//S: the condition checking should be made here. e.g.
                        case 'H':
                            if (gbl.area2_ptr.training_class_mask <= 0 && 
                                Cheats.free_training == false)
                            {
                                seg041.DisplayStatusText(0, 14, 
                                    "???");
                            }
                            else if (!ovr026.IsHuman(gbl.player_ptr))
                            {
                                seg041.DisplayStatusText(0, 14, 
                                    "Not Human");
                            }
                            else if
(ovr026.HumanFirstOldClass_Unknown(gbl.player_ptr) != ClassId.unknown)
                            {
                                seg041.DisplayStatusText(0, 14, 
                                    "Already dual-class");
                            }
                            else if (menuFlags[allow_multiclass] == true)
                            {
                                ovr026.multiclass(gbl.player_ptr);
                            }
                            break;

B) is actually the elimination of the "Already dual-class" condition.
As far as I could see it needs to be fixed in 3 places.

B1) the menu itself, like above. If A) is implemented simply remove the
condition.

B2) the recalculation of menu:
ovr018.cs, line 145:
                        bool var_11 = (ovr026.IsHuman(gbl.player_ptr) &&
ovr026.HumanFirstOldClass_Unknown(gbl.player_ptr) == ClassId.unknown);
...
                        if (ovr026.IsHuman(gbl.player_ptr) == false ||

ovr026.HumanFirstOldClass_Unknown(gbl.player_ptr) != ClassId.unknown)

//S: remove old class condition
                        bool var_11 = (ovr026.IsHuman(gbl.player_ptr));
...
                        if (ovr026.IsHuman(gbl.player_ptr) == false)

If A) is implemented the whole section can be ignored: replace lines 145-160:
                        bool var_11 = ...
                        ...
                        reclac_menus = var_11 &&
gbl.area2_ptr.training_class_mask > 0;


with this single line:
                        reclac_menus = gbl.area2_ptr.training_class_mask > 0;

By the way I have a feeling that a cheat condition is missing here so it
should definitely look like:
                        reclac_menus = (gbl.area2_ptr.training_class_mask
<= 0 && Cheats.free_training == false)

B3) Recalculation of HP on CON change:
This is the hardest part.
ovr024.cs, line 1057:
                    byte var_B = player.ClassLevelsOld[var_C];

                    if (var_B > 0)
                    {
                        sub_647BE(var_B, var_C, stat_a, ref var_A, player);
                    }

This is within a for loop, therefore the Con bonus will be calculated and
summed for all old classes. I made a try with:
Fighter 9 / Ranger 11
For Con 19 the bonus is 10x5 = 50
However, your version calculates 90 with Con 19 and 72 with Con 18 (i.e. 18
x bonus, where 18 = 9 + min(9,11)). 
This is definitely a defect and will open a separate issue for it.

Then modified saved game to:
Fighter 9/Paladin 8/Ranger 11/Magic-User 7/Thief 6
The Con bonus should be:
6x2 for Thief
1x2 for Magic-User
1x5 for Paladin
1x5 for Fighter
1x5 for Ranger (no Con bonus on 11th level)
For a total of 29. Instead, I think the bonus is calculated as:
6x2 + 7x2 + 8x5 + 9x5 + 5 (note: it is properly calculated for the current
class) = 116. However, for some reason, the DOS version calculated 121 (I
have no explanation).
Your version calculates 130/156, depending on Con 18/19.

Nevertheless, either the calls to the sub or the sub itself should be
rewritten to be conscious about multiple dual classes.

I'm still thinking about an effective (linear) algorithm like filling a
vector and summing it up at the end.

Original issue reported on code.google.com by surrano on 16 Sep 2009 at 8:10

Improper HP calculation for Dual Class

What steps will reproduce the problem?
1. Create a fighter (level 5) with high CON score, e.g. 17. 
2. Dual-class to thief.
3. Advance to level 6.

What is the expected output? What do you see instead?
Max HP should be 5x10 + 5x3 + 1x6 + 1x2 = 73.
Instead, it is 5x10 + 5x3 + 1x6 + 5x2 = 81

What version of the product are you using? On what operating system?
1.0.20 on Win XP

Please provide any additional information below.
References are from SVN dated 11 Sep 2009.
Notes marked with //S:

ovr024.cs, line 1076:
                    if (var_B > player.multiclassLevel)
                    {
                        var_B = player.multiclassLevel;

                        sub_647BE(var_B, var_C, stat_a, ref var_A, player);
                    }

//S: This code means that CON bonus for new class is calculated with 
//S: the level of the old class, not the excess levels.
//S: The minimum fix is that it should be -=
                    if (var_B > player.multiclassLevel)
                    {
                        var_B -= player.multiclassLevel;

                        sub_647BE(var_B, var_C, stat_a, ref var_A, player);
                    }

Even with this fix this calculation goes wrong once max_class_levels
(max_class_hit_dice) are reached.
E.g. Fighter level 9, Thief level 12: should receive 9x3 + 1x2 bonus.
Even with the fix above it will receive 9x3 + 3x2 bonus, because of this:

ovr024.cs, line 783:
        internal static void sub_647BE(byte arg_2, int class_index, byte
bp_var_1, ref byte bp_var_A, Player player)
        {
            if (gbl.max_class_levels[class_index] <= arg_2)
            {
                arg_2 = (byte)(gbl.max_class_levels[class_index] - 1);
            }


I.e. the levels (arg_2) are compared to max_class_levels only but only the
difference is passed as an argument.
A solution is calling it for current level, then substracting for
multiclasslevel:

                    if (var_B > player.multiclassLevel)
                    {
                        // calculate as if single class 
                        // (except ranger dual hit dice)
                        sub_647BE(var_B, var_C, stat_a, ref var_A, player);
                        byte multiclass_delta = 0;
                        // calculate as if old class would be current class
                        sub_647BE(player.multiclassLevel, var_C, stat_a,
                            ref multiclass_delta, player);
                        // The old class part is subtracted from the total
                        var_A -= multiclass_delta;
                    }

This way the calculation will go like:
10x2 for thief level 12
9x2 for thief level 9
Difference is 1x2 hp.

Original issue reported on code.google.com by surrano on 16 Sep 2009 at 8:25

Unable to manually aim melee attacks while wielding a weapon

What steps will reproduce the problem?
1. Unequip a weapon, select Aim->Manual and select a nearby enemey.
"Target" option is availible.

2.  Equip a  weapon and repeat the process, notice "Target" is missing.

Changing 
maxRange =gbl.ItemDataTable[attacker.Equipped_Weapon1.type].range - 1;

to 
maxRange =gbl.ItemDataTable[attacker.Equipped_Weapon1.type].range +1;

seems to fix the problem.

Original issue reported on code.google.com by [email protected] on 4 Aug 2009 at 3:58

Crash on scribe when multiple MU scrolls in inventory

What steps will reproduce the problem?
1. Trying to scribe a MU scroll when there are more than one scroll in
inventory
2.
3.

What is the expected output? What do you see instead?
I should see the scribing scroll screen. Instead, it crashes.

What version of the product are you using? On what operating system?
v 1.0.15

Please provide any additional information below.
The scribe screen works when there is one scroll in inventory. But two or
more (even if one is a cleric scroll) seems to cause a crash.

Original issue reported on code.google.com by [email protected] on 9 May 2009 at 6:49

Trying to exit Moander temple

When playing Pual's party in the Moander temple, 

in dos:
if you try leave via the entrance, you get a "no no" message and push back
into the room

in port:
you get teleported to the "lower level" very helpful, not not the same...


Original issue reported on code.google.com by simeon.pilgrim on 7 Apr 2008 at 2:17

using cloak of displacement crashes games

Save F, superkranix has a 'cloak of displacement' if you unready it, then
ready it again when not in combat the game crashes.


Original issue reported on code.google.com by simeon.pilgrim on 17 May 2008 at 9:34

Current HP is improperly calculated on CON change

What steps will reproduce the problem?
1. Heal character to max 
2. Equip Girdle of the Dwarves so that CON bonus changes (i.e. from 14-18
to 15-19)

What is the expected output? What do you see instead?
HP current remains equal to max, with the increased value.
Instead, HP becomes the difference between old and new max.

What version of the product are you using? On what operating system?
1.0.20 on Win XP

Please provide any additional information below.
References are from SVN dated 11 Sep 2009.
Notes marked with //S:

ovr024.cs, line 1087:
                if (player.hit_point_max > map_hp)
                {
                    player.hit_point_current = (byte)(player.hit_point_max
- map_hp);
                }

                if (player.hit_point_max < map_hp)
                {
                    if (player.hit_point_current > map_hp -
player.hit_point_max)
                    {
                        player.hit_point_current = (byte)(map_hp -
player.hit_point_max);
                    }
                    else
                    {
                        player.hit_point_current = 0;
                    }
                }

//S: the minimum fix would be using "+=" and "-=" instead of "=":
                    player.hit_point_current += (byte)(player.hit_point_max
- map_hp);
                    //...
                        player.hit_point_current -= (byte)(map_hp -
player.hit_point_max);

//S: however, the whole story is much simpler than this and can be cleaned
up as:
                //S: some caution is needed here... this must be a 
                //S: signed comparison!
                if (player.hit_point_current > 
                    map_hp – player.hit_point_max)
                {
                    player.hit_point_current += 
                        (byte)(player.hit_point_max – map_hp);
                }
                else
                {
                    player.hit_point_current = 0;
                }

Original issue reported on code.google.com by surrano on 16 Sep 2009 at 6:54

Giant Slugs not spitting acid

Giant Slugs are supposed to spit acid, apparently  they are not.

Original issue reported on code.google.com by simeon.pilgrim on 2 May 2008 at 4:33

Magic Darts names displayed incorrectly (SSI Bug)

If you have
2 or more magic Darts in your inventory, and they are identified, then the
display name generated is
"X Dart +1s" instead of "X Darts +1"

I have this situation in save game I

Original issue reported on code.google.com by simeon.pilgrim on 3 Jun 2008 at 12:44

crash in wilderness encounters

What steps will reproduce the problem?
1. Starting from Saved game E, 
2. Exiting the dungeon you get to the wilderness map. 
3. Make your way to Hillsfar
4. Try taking a boat to Phlan.  

The game says you're attacked by pirates then proceeds to crash.



Original issue reported on code.google.com by simeon.pilgrim on 26 May 2008 at 1:42

Treasure sharing screen does not show treasure picture

What steps will reproduce the problem?
1. Have a combat, which drops treasure

What is the expected output? What do you see instead?
When in the 'View Take Pool Detect Exit' menu, the Treasure picture should
be displayed.


Original issue reported on code.google.com by simeon.pilgrim on 26 May 2008 at 1:44

Combat spells not working

- Cone of cold
- Slow
- Curse
- Fireball

need to check them all.


Original issue reported on code.google.com by simeon.pilgrim on 2 May 2008 at 4:31

Combat background colour is wrong

In the original game the background colour is gray, and shadow are balck.
In the port, the background is black, and shadows are grey.

I suspect there is a palate swap, that is not sticking...


Original issue reported on code.google.com by simeon.pilgrim on 7 Apr 2008 at 2:09

Using scrolls crashes

Encamp and memorize an identified scroll (say, Magic User Scroll with 3 
Spells -- from thieves' treasure) -> crash on memorize.  As well, use a 
scroll in combat -> crash.

Original issue reported on code.google.com by [email protected] on 20 May 2008 at 6:04

Crash on cast Find Trap

Game quits whenever I try to cast “find trap” from a game menu. Not as a
spell. this has happened twice so far, first at the altar in the temple of
bane in zhentil keep, 2nd time searching the dead elf’s remains int he cave
of the beholder.


Original issue reported on code.google.com by simeon.pilgrim on 26 Jan 2010 at 2:29

Combat: Staff Sling not targetting in aim mode on ranged targets

What steps will reproduce the problem?
1. Get a player with a Staff Sling
2. Aim at a ranged monster, 2-3 squares away
3. no option to target this monster

What is the expected output? What do you see instead?

You should be able to target them



Original issue reported on code.google.com by simeon.pilgrim on 27 Aug 2009 at 8:28

Exp lost during training

If you have more exp than level needs your exp is set back to new level
minimum.

Reported: Jakey

Original issue reported on code.google.com by simeon.pilgrim on 30 Aug 2009 at 7:06

Travelling outside crashes

What steps will reproduce the problem?
* Try to take any path from Tilverton through the outside to any city 
(dagger falls, etc.) via wilderness or trail.

After exiting the fire knives lair and getting kicked out of Tilverton, I 
wasn't able to continue travelling.  App crashes whenever trail or 
wilderness route selection is made.  I have a save game if you need it 
(saved at the point of wilderness travel).



Original issue reported on code.google.com by [email protected] on 11 Jun 2008 at 9:23

Monster placement wrong in combat

Monster placement in combat is wrong. In the Mogion battles, clerics are
sometime place on the other side of a wall, to the rest of the battle.

seen in build 1.0.5

Original issue reported on code.google.com by simeon.pilgrim on 18 Apr 2008 at 5:00

'Fix' command while encamped does nothing

It should use the spell casters spells to heal the party and rest until all
healed and all spells are recovered.


Original issue reported on code.google.com by simeon.pilgrim on 2 May 2008 at 4:28

Trading money does not work

Select a party member, drop all their money.
Select another party member and try trading money, nether member's money
will change. 

The weight of the members will change, as if the money had been swapped

Original issue reported on code.google.com by simeon.pilgrim on 17 Jun 2008 at 2:50

Modify exceptional strength does not work

What steps will reproduce the problem?
1. Create human fighter
2. Modify strength to 18/00
3. Keep
4. View character

What is the expected output? What do you see instead?
Expected is that STR remains the modified value.
Instead, it is the original value (if it was exceptional) or 18 (if it was
lower). All other stats are modified correctly.

What version of the product are you using? On what operating system?
SVN tip as of 16 Sep 2009, Win XP. Compiled with csc (.Net 3.5) and ResGen
(VS Express 2008)

Please provide any additional information below.
I think problem is here:

ovr018.cs, lines:
#1323:
    byte var_7 = gbl.player_ptr.tmp_str_00;
#1416:
    if (player_ptr.tmp_str_00 > 0)
    {
        player_ptr.tmp_str_00 -= 1;
#1549:
    if (player_ptr.stats[stat_var].max > 18 &&
        (player_ptr.fighter_lvl > 0 || player_ptr.paladin_lvl > 0 ||
player_ptr.ranger_lvl > 0) &&

racial_stats_limits[(int)player_ptr.race].str_100_max[player_ptr.sex] >
player_ptr.tmp_str_00)
    {
        player_ptr.tmp_str_00 += 1;
    }
#1736:
    gbl.player_ptr.tmp_str_00 = var_7;
#1792:
    gbl.player_ptr.tmp_str_00 = gbl.player_ptr.max_str_00;

Just as with the rest of the stats I suppose the modification should be
done on max, and upon exit, it is the max that should be reset to var_7.
I think the last line is the only one that's consistent here. But you may
change that line only -- i.e. edit tmp all the way along, and do max_str_00
= tmp_str_00 at the end.

I wonder what may happen if you equip a Gauntlets of Ogre Power before
editing the character :)

Original issue reported on code.google.com by surrano on 17 Sep 2009 at 8:17

detect magic not marking magic treasure

What steps will reproduce the problem?
1. find some treasure with magic items known to be present
2. cast detect magic
3. view items to take

What is the expected output? What do you see instead?
There should be a '*' in front on the magic items.



Original issue reported on code.google.com by simeon.pilgrim on 4 Apr 2008 at 9:51

Attacks of opportunity do not happen

When moving past a opponent threatened square, that are supposed to get a
free attack.


Original issue reported on code.google.com by simeon.pilgrim on 2 May 2008 at 5:00

Fix improperly hacked PoolRadPlayer

This is a minor issue, more like a feature. You may wish to reject it.

What steps will reproduce the problem?
1. Alter a PoolRad player file so that you modify max hp (0x32) and current
hp (0x11b) but not rolled hp (0xb1) 
2. Import character to Curse
3. Make Curse recalculate HP, e.g. ready an item that modifies Con, e.g.
Girdle of the Dwarves

Note: the reproduction is the readying of the item, the character may have
been imported earlier.

Another way to reproduce is:
1. Alter a Curse player file (or saved game) so that you modify rolled hp
(0x12c) but not max hp (0x78), or modify Con without modifying hp, etc.
2. Ready Girdle of the Dwarves

What is the expected output? What do you see instead?
Expected output would be that if you ready e.g. Girdle of Dwarves then HP
goes up according to Con change and if you unready it the HP returns to
original. 
Instead, the HP is calculated from the not-hacked rolled hp (0xb1).

What version of the product are you using? On what operating system?
1.0.20 on Win XP

Please provide any additional information below.
References to code are from SVN tip as of Sep 11.
Comments are marked with //S: 

Player.cs, line 401: 
        [DataOffset(0x12c, DataType.Byte)]
        public byte field_12C; // 0x12c;
//S: field should be called hit_point_rolled or something like this.
        public byte hit_point_rolled; // 0x12c;

ovr017.cs, line 536:
            player.field_12C = bp_var_1C0.field_B1;
//S: the calculation should be checked against max hp 
//S: and one of them should be fixed. E.g.:
            player.hit_point_rolled = bp_var_1C0.field_B1;
            byte map_hpmax = player.hit_point_max;
            ovr024.CalcStatBonuses(Stat.CON, player);
            // note: this already fixes hpmax if I'm not mistaken
            // to fix hprolled instead:
            if (player.hit_point_max != map_hpmax) {
                player.hit_point_rolled += player.hit_point_max - map_hpmax;
                player.hit_point_max = map_hpmax;
            }

Original issue reported on code.google.com by surrano on 16 Sep 2009 at 6:29

Trading Items Among Party Members Copies The Item

What steps will reproduce the problem?
1. View a character's items
2. Trade an item to another character

What is the expected output? What do you see instead?
The item should transfer.  Instead, you get a warning saying that 
you "can't lose the item".  However, the target character now has the item 
too.  Trade again, and the target character will have another copy.

What version of the product are you using? On what operating system?
1.0.7

Please provide any additional information below.
I love it!!!  Makes for great team building, and you can sell xeroxed 
magic items to your heart's content, but it's a bug.

Original issue reported on code.google.com by [email protected] on 20 May 2008 at 5:51

Casting display typo

What steps will reproduce the problem?
1. Press "C" during battle.

What is the expected output? What do you see instead?
Game should display "<char>'s spells in memory". Instead, it displays
"<char>s  spells in memory" (note the missing apostrophe as well as the
extra space after "s").

What version of the product are you using? On what operating system?
v 1.0.15, Windows XP

Please provide any additional information below.
Just a minor typo that I noticed.

Original issue reported on code.google.com by [email protected] on 28 Apr 2009 at 1:34

Improper name "max_class_levels" for hit dice limits

Type: Code beautify
Severity: remark

That steps will reproduce the problem?
None. Just a code beautify issue.

What is the expected output? What do you see instead?
References to code are from SVN tip dated 11 Sep 2009.
Notes marked with //S:
Gbl.cs: line 269
        public readonly static byte[] max_class_levels =  { 10, 15, 10, 10,
11, 12, 11, 13 }; // byte_1A1CB seg600:3EBB
//S: should be:
        public readonly static byte[] max_class_hit_dice =  { 10, 15, 10,
10, 11, 12, 11, 13 }; // byte_1A1CB seg600:3EBB

The variable is referenced in ovr018.cs and ovr024.cs

What version of the product are you using? On what operating system?
1.0.20 on Win XP

Please provide any additional information below.


Original issue reported on code.google.com by surrano on 16 Sep 2009 at 6:34

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.