OK so here are
a) my source code (extract)
b) the preprocessor output
I get a syntax error on the first line of deductScores()
The functions in between are used in the program.
If I comment out deductScores, the functions reappear in the preprocessed output (with no syntax error)
//Re-pack table to the left
defragTable()
{
integer i;
integer j;
integer cnt = 0;
list tempTable = [];
// Put active tiles in temp list
for (i=0; i<15; i++) {
if (l2i(TABLE, i) > 0) {
tempTable += l2i(TABLE, i);
cnt++;
}
}
// Clear table
TABLE = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
for (i=0, j=0; i<15; i++)
clearTile(offset(BOARD_TABLE,i));
// Rebuild table
for (i=0; i<len(tempTable); i++) {
if (l2i(tempTable, i) > 0) {
TABLE[j] = l2i(tempTable, i);
placeTile(offset(BOARD_TABLE,j), (integer)TABLE[j]);
j++;
}
}
}
switchTurns()
{
if (whoseTurn == 1)
whoseTurn = 0;
else whoseTurn = 1;
}
// Bomb out if we ever overflow the hand area
integer checkHandsOverflow(integer count)
{
if ( count > maxHANDS-1) {
llSay(0, "Sorry - game has overflowed hand area - please complain to the designer!");
return( 1 );
}
return( 0 );
}
setMeld(integer row, integer tile)
{
integer rStart;
integer indx;
integer score;
integer rTouch; integer vTouch;
//debug("TABLE: setMeld got row " + (string)row + " tile " + (string)tile);
/* Hand baton to scoring script */
logMeld(row, tile);
llMessageLinked(LINK_ROOT, TO_SCORER, (string)row + "|" + (string)tile, (string)activePlayer);
}
integer deductScores(pl)
{
integer i;
integer s = 0;
for (i=0; i < (integer)cntDEDUCT[pl]; i++) {
if (i < 2)
s += 1;
else if (i < 5)
s += 2;
else
s += 3;
}
return( s );
}
defragTable()
{
integer i;
integer j;
integer cnt = 0;
list tempTable = [];
for (i=0; i<15; i++) {
if (llList2Integer(TABLE, i) > 0) {
tempTable += llList2Integer(TABLE, i);
cnt++;
}
}
TABLE = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
for (i=0, j=0; i<15; i++)
clearTile(offset(BOARD_TABLE,i));
for (i=0; i<llGetListLength(tempTable); i++) {
if (llList2Integer(tempTable, i) > 0) {
TABLE=lazy_list_set(TABLE,j,[llList2Integer(tempTable, i)]);
placeTile(offset(BOARD_TABLE,j), llList2Integer(TABLE,j));
j++;
}
}
}
integer deductScores(pl)
{
integer i;
integer s = 0;
for (i=0; i < llList2Integer(cntDEDUCT,pl); i++) {
if (i < 2)
s += 1;
else if (i < 5)
s += 2;
else
s += 3;
}
return( s );
}