/* * 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 -----------//