本文整理汇总了C++中Town::update_target_loyalty方法的典型用法代码示例。如果您正苦于以下问题:C++ Town::update_target_loyalty方法的具体用法?C++ Town::update_target_loyalty怎么用?C++ Town::update_target_loyalty使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Town
的用法示例。
在下文中一共展示了Town::update_target_loyalty方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: settle
//--------- Begin of function TownArray::settle --------//
//
// A unit settles on a given location and form a town town.
//
// return: <int> 1 - settled and a town town is formed successfully.
// 0 - settling failed. too close to a town of another nation.
//
int TownArray::settle(int unitRecno, int xLoc, int yLoc)
{
if(!world.can_build_town(xLoc, yLoc, unitRecno))
return 0;
//--------- get the nearest town town ------------//
Unit* unitPtr = unit_array[unitRecno];
char nationRecno = unitPtr->nation_recno;
//----- it's far enough to form another town --------//
int townRecno = town_array.add_town( nationRecno, unitPtr->race_id, xLoc, yLoc );
//---------- init town population ----------//
Town* townPtr = town_array[townRecno];
//----------------------------------------------------//
// if the settle unit is standing in the town area
// cargo_recno of that location is unchange in town_array.add_town
// so update the location now
//----------------------------------------------------//
short uXLoc = unitPtr->next_x_loc();
short uYLoc = unitPtr->next_y_loc();
Location *locPtr = world.get_loc(uXLoc, uYLoc);
townPtr->assign_unit(unitRecno);
if( uXLoc>=townPtr->loc_x1 && uXLoc<=townPtr->loc_x2 && uYLoc>=townPtr->loc_y1 && uYLoc<=townPtr->loc_y2 )
locPtr->set_town(townPtr->town_recno);
#ifdef DEBUG
// make sure cargo recno is set to town's
for( uYLoc = townPtr->loc_y1; uYLoc <= townPtr->loc_y2; ++uYLoc)
{
for( uXLoc = townPtr->loc_x1; uXLoc <= townPtr->loc_x2; ++uXLoc)
{
err_when( world.get_loc(uXLoc, uYLoc)->town_recno() != townPtr->town_recno );
}
}
#endif
townPtr->update_target_loyalty();
//--------- hide the unit from the map ----------//
return 1;
}
示例2: update_influence
//--------- Begin of function FirmCamp::update_influence ---------//
//
// Update this camp's influence on neighbor towns.
//
void FirmCamp::update_influence()
{
int i;
Town* townPtr;
for( i=0 ; i<linked_town_count ; i++ )
{
if(town_array.is_deleted(linked_town_array[i]))
continue;
townPtr = town_array[linked_town_array[i]];
if( linked_town_enable_array[i] == LINK_EE )
{
if( townPtr->nation_recno )
townPtr->update_target_loyalty();
else
townPtr->update_target_resistance();
}
}
}
示例3: draw_detect_link_line
//.........这里部分代码省略.........
if( nation_recno == nation_array.player_recno )
world.zoom_matrix->put_bitmap_clip( firmX-11, firmY-11, bitmapPtr );
}
}
//------ draw lines to linked towns ---------//
for( i=0 ; i<linked_town_count ; i++ )
{
townPtr = town_array[linked_town_array[i]];
townX = ( ZOOM_X1 + (townPtr->loc_x1-world.zoom_matrix->top_x_loc) * ZOOM_LOC_WIDTH
+ ZOOM_X1 + (townPtr->loc_x2-world.zoom_matrix->top_x_loc+1) * ZOOM_LOC_WIDTH ) / 2;
townY = ( ZOOM_Y1 + (townPtr->loc_y1-world.zoom_matrix->top_y_loc) * ZOOM_LOC_HEIGHT
+ ZOOM_Y1 + (townPtr->loc_y2-world.zoom_matrix->top_y_loc+1) * ZOOM_LOC_HEIGHT ) / 2;
if( worker_array && selected_worker_id &&
worker_array[selected_worker_id-1].town_recno == townPtr->town_recno )
{
lineType = -1;
anim_line.thick_line(&vga_back, srcX, srcY, townX, townY, linked_town_enable_array[i]==LINK_EE, lineType );
}
else
{
lineType = 0;
anim_line.draw_line(&vga_back, srcX, srcY, townX, townY, linked_town_enable_array[i]==LINK_EE, lineType );
}
//----- check if this firm can toggle link or not -----//
if( !can_toggle_town_link() )
continue;
//--------- draw link symbol -----------//
bitmapPtr = power.get_link_icon( linked_town_enable_array[i], nation_recno==townPtr->nation_recno );
if( actionDetect )
{
int rc = world.zoom_matrix->detect_bitmap_clip( townX-11, townY-11, bitmapPtr );
//------ left clicking to toggle link -------//
if( rc==1 && own_firm() )
{
if( linked_town_enable_array[i] & LINK_ED )
{
toggle_town_link( i+1, 0, COMMAND_PLAYER );
se_ctrl.immediate_sound("TURN_OFF");
}
else
{
toggle_town_link( i+1, 1, COMMAND_PLAYER );
se_ctrl.immediate_sound("TURN_ON");
}
//
// update RemoteMsg::firm_toggle_link_town()
//
if( firm_id == FIRM_CAMP && !remote.is_enable())
{
if( townPtr->nation_recno )
townPtr->update_target_loyalty();
else
townPtr->update_target_resistance();
townPtr->update_camp_link();
}
return 1;
}
//------ right clicking to move workers ------//
else if( rc==2 && selected_worker_id > 0 )
{
//--- only when this worker is ours ----//
if( firm_res[firm_id]->live_in_town &&
worker_array[selected_worker_id-1].is_nation(firm_recno, nation_array.player_recno) )
{
if(townPtr->population>=MAX_TOWN_POPULATION)
return 0;
set_worker_home_town(townPtr->town_recno, COMMAND_PLAYER);
se_ctrl.immediate_sound("PULL_MAN");
return 1;
}
}
}
else
{
if( nation_recno == nation_array.player_recno )
world.zoom_matrix->put_bitmap_clip( townX-11, townY-11, bitmapPtr );
}
}
return 0;
}