Not Build 14 vs. Build 15, but the Building kit.
Dialog file "Enc_Officer_dialog.c" tries to use bricks, inconsistently, and in particular it wants to use attribute "building.bricks". The problem is that functions 'InitBLDexterior' and 'InitBLDinterior' don't set that attribute, nor do the building item definitions have any value for bricks. So buildings which ought to require a lot of stone - or bricks - don't. The so-called "stone faced bastion" is built entirely from planks. More importantly, when you build something, "error.log" shows messages about that missing attribute. And for some reason, when you do build something, dialog case "erect" deducts one fewer plank than it should from your hold:
The attached zip changes 'InitBLDexterior' to take "bricks" as an argument, and changes the required materials for most exterior items to include some bricks. (Or, in the case of the keep, a lot of bricks!) 'InitBLDinterior' does not take "bricks" as an argument but sets attribute "building.bricks" to 0 so that "Enc_Officer_dialog.c" can check it. "Enc_Officer_dialog.h" is updated to show the new material requirements, and case "erect" no longer lets you keep one unit of planks or bricks.
Dialog file "Enc_Officer_dialog.c" tries to use bricks, inconsistently, and in particular it wants to use attribute "building.bricks". The problem is that functions 'InitBLDexterior' and 'InitBLDinterior' don't set that attribute, nor do the building item definitions have any value for bricks. So buildings which ought to require a lot of stone - or bricks - don't. The so-called "stone faced bastion" is built entirely from planks. More importantly, when you build something, "error.log" shows messages about that missing attribute. And for some reason, when you do build something, dialog case "erect" deducts one fewer plank than it should from your hold:
Code:
RemoveCharacterGoods(pchar, GOOD_PLANKS, planks-1 );
The attached zip changes 'InitBLDexterior' to take "bricks" as an argument, and changes the required materials for most exterior items to include some bricks. (Or, in the case of the keep, a lot of bricks!) 'InitBLDinterior' does not take "bricks" as an argument but sets attribute "building.bricks" to 0 so that "Enc_Officer_dialog.c" can check it. "Enc_Officer_dialog.h" is updated to show the new material requirements, and case "erect" no longer lets you keep one unit of planks or bricks.