/*
* Seven Kingdoms: Ancient Adversaries
*
* Copyright 1997,1998 Enlight Software Ltd.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*
*/
#include
#include
#include
#include
//--------- Begin of function ShipStop::update_pick_up ---------//
// enableFlag - represent which button will be displayed
//
int ShipStop::update_pick_up(char *enableFlag)
{
#ifdef DBEUG
if(pick_up_type == AUTO_PICK_UP || pick_up_type == NO_PICK_UP)
{
for(int di=0; dilinked_firm_count-1; i>=0; --i)
{
err_when(firm_array.is_deleted(harborPtr->linked_firm_array[i]));
firmPtr = firm_array[harborPtr->linked_firm_array[i]];
switch(firmPtr->firm_id)
{
case FIRM_MINE:
if((id = ((FirmMine*)firmPtr)->raw_id)) // 1-3
{
goodsNum++;
enableFlag[id] = 1;
if(firstGoodsId==0)
firstGoodsId = id;
}
break;
case FIRM_FACTORY:
if((id = ((FirmFactory*)firmPtr)->product_raw_id)) // 1-3
{
id += MAX_RAW; // 4-6
goodsNum++;
enableFlag[id] = 1;
if(firstGoodsId==0)
firstGoodsId = id;
}
break;
case FIRM_MARKET:
marketGoodsPtr = ((FirmMarket*) firmPtr)->market_goods_array;
for(j=1; j<=MAX_MARKET_GOODS; j++, marketGoodsPtr++)
{
if((id = marketGoodsPtr->raw_id)) // 1-3
{
goodsNum++;
enableFlag[id] = 1;
if(firstGoodsId==0)
firstGoodsId = id;
}
else if((id = marketGoodsPtr->product_raw_id)) // 1-3
{
id += MAX_RAW; // 4-6
goodsNum++;
enableFlag[id] = 1;
if(firstGoodsId==0)
firstGoodsId = id;
}
}
break;
default: err_here();
break;
}
}
for(i=0; ilinked_firm_count-1; i>=0; --i)
{
err_when(firm_array.is_deleted(harborPtr->linked_firm_array[i]));
firmPtr = firm_array[harborPtr->linked_firm_array[i]];
switch(firmPtr->firm_id)
{
case FIRM_MINE:
id = ((FirmMine*)firmPtr)->raw_id+PICK_UP_RAW_FIRST-1;
if(id==pos)
cargoExist = 1;
break;
case FIRM_FACTORY:
id = ((FirmFactory*)firmPtr)->product_raw_id+PICK_UP_PRODUCT_FIRST-1;
if(id==pos)
cargoExist = 1;
break;
case FIRM_MARKET:
marketGoodsPtr = ((FirmMarket*) firmPtr)->market_goods_array;
for(j=1; j<=MAX_MARKET_GOODS; j++, marketGoodsPtr++)
{
if((id = marketGoodsPtr->raw_id)) // 1-3
{
if(id==pos)
cargoExist = 1;
break;
}
else if((id = marketGoodsPtr->product_raw_id)) // 1-3
{
id += MAX_PRODUCT; // 4-6
if(id==pos)
cargoExist = 1;
break;
}
}
break;
default: err_here();
break;
}
if(cargoExist)
{
pick_up_toggle(pos);
break;
}
}
}
//----------- End of function ShipStop::mp_pick_up_toggle -----------//