int min_level(int f,int level,int alpha,int beta) { int p,j,ev,pf,i,all,tmp; int ban_cpy[101]; ev=0; for(i=11;i<=88;i++) ban_cpy[i]=ban[i]; if(level==0 && e==ON){ ev+=evl()*7; tmp=sekisa(); if(com==0){ev=-10000;return ev;} else if((man+com)<D)ev-=tmp*31; ev+=enableput()*87; ev+=corner()*2048; ev+=xuti()*256; ev+=cuti()*128; ev+=Hen1(); ev+=Hen2(); return ev; } else if (level==0){ return(sekisa()); } pf=OFF;tmp=10000; for(j=0;j<=60;j++) { all=0; p=tbl[j]; all=check(p,MAN,OFF); if(all){ pf=ON; all=check(p,MAN,ON); tmp=max_level(OFF,level-1,alpha,beta); if(beta>tmp) beta=tmp; for(i=11;i<89;i++) ban[i]=ban_cpy[i]; } if(beta<=alpha) return (beta); } if(pf!=OFF) return(beta); if(f==ON)return (sekisa()); return max_level(ON,level-1,alpha,beta); }
/** * resource_test_2 - Tests resource framework APIs when two devices requests * the same "opp/freq" resource for same or different levels * @res_name: Name of the resource requested * @req_lvl1: Device 1 level requested for the resource * @req_lvl2: Device 2 level requested for the resource * * Two devices requests the "opp/freq" resource for the specified levels, * verifies if the resource's current level is same as the maximum of * requested levels and releases the resource * * Returns 0 on success, -1 on failure */ static int resource_test_2(const char *res_name, unsigned long req_lvl1, unsigned long req_lvl2) { int ret, result = TEST_PASS; int cur_lvl, req_lvl; struct device dev1, dev2; printk(KERN_INFO "Entry resource_test_2 \n"); if (!strcmp(res_name, "vdd2_opp")) ret = request_vdd2_opp(&dev1, req_lvl1); else ret = resource_request(res_name, &dev1, req_lvl1); if (ret) { printk(KERN_ERR "FAILED!!!! dev1 resource request for %s failed" " with value %d\n", res_name, ret); return TEST_FAIL; } if (!strcmp(res_name, "vdd2_opp")) ret = request_vdd2_opp(&dev2, req_lvl2); else ret = resource_request(res_name, &dev2, req_lvl2); if (ret) { printk(KERN_ERR "FAILED!!!! dev2 resource request for %s failed" " with value %d\n", res_name, ret); resource_release(res_name, &dev1); return TEST_FAIL; } cur_lvl = resource_get_level(res_name); req_lvl = (int) max_level(req_lvl1, req_lvl2); if (cur_lvl != req_lvl) { printk(KERN_ERR "FAILED!!!! resource %s current level:%d" " req lvl:%d\n", res_name, cur_lvl, req_lvl); result = TEST_FAIL; } ret = resource_release(res_name, &dev1); if (ret) { printk(KERN_ERR "FAILED!!!! dev1 resource release for %s failed" " with value %d\n", res_name, ret); result = TEST_FAIL; } ret = resource_release(res_name, &dev2); if (ret) { printk(KERN_ERR "FAILED!!!! dev2 resource release for %s failed" " with value %d\n", res_name, ret); result = TEST_FAIL; } if (!result) printk(KERN_INFO "resource_test_2 PASSED for %s\n", res_name); return result; }
/* -Thoric * Display your current exp, level, and surrounding level exp requirements */ void do_level( CHAR_DATA * ch, const char *argument ) { int ability; for( ability = 0; ability < MAX_ABILITY; ability++ ) if( ability != FORCE_ABILITY || ch->skill_level[FORCE_ABILITY] > 1 ) ch_printf( ch, "%-15s Level: %-3d Max: %-3d Exp: %-10ld Next: %-10ld\r\n", ability_name[ability], ch->skill_level[ability], max_level( ch, ability ), ch->experience[ability], exp_level( ch->skill_level[ability] + 1 ) ); else ch_printf( ch, "%-15s Level: %-3d Max: ??? Exp: ??? Next: ???\r\n", ability_name[ability], ch->skill_level[ability], ch->experience[ability] ); }
IImageDataSP VKTS_APIENTRY imageDataLoadGli(const std::string& name, const IBinaryBufferSP& buffer) { if (!buffer.get()) { return IImageDataSP(); } auto texture = gli::load(name.c_str()); if (texture.empty()) { return IImageDataSP(); } if (texture.layers() > 1 && texture.faces() > 1) { return IImageDataSP(); } VkFormat format = imageDataTranslateFormat(texture.format()); if (format == VK_FORMAT_UNDEFINED) { return IImageDataSP(); } uint32_t arrayLayers = (uint32_t)(texture.layers() * texture.faces()); uint32_t mipLevels = (uint32_t)texture.levels(); VkImageType imageType = VK_IMAGE_TYPE_2D; if (texture.extent().z > 1) { imageType = VK_IMAGE_TYPE_3D; } // std::vector<size_t> allOffsets; size_t offset = 0; for (size_t arrayLayer = texture.base_layer(); arrayLayer <= texture.max_layer(); arrayLayer++) { for (size_t face = texture.base_face(); face <= texture.max_face(); face++) { for (size_t mipLevel = texture.base_level(); mipLevel <= texture.max_level(); mipLevel++) { allOffsets.push_back(offset); offset += texture.size(mipLevel); } } } size_t totalSize = offset; std::vector<uint8_t> data(totalSize); offset = 0; for (size_t arrayLayer = texture.base_layer(); arrayLayer <= texture.max_layer(); arrayLayer++) { for (size_t face = texture.base_face(); face <= texture.max_face(); face++) { for (size_t mipLevel = texture.base_level(); mipLevel <= texture.max_level(); mipLevel++) { memcpy(&data[offset], texture.data(arrayLayer, face, mipLevel), texture.size(mipLevel)); offset += texture.size(mipLevel); } } } return IImageDataSP(new ImageData(name, imageType, format, { (uint32_t)texture.extent().x, (uint32_t)texture.extent().y, (uint32_t)texture.extent().z }, mipLevels, arrayLayers, allOffsets, &data[0], totalSize)); }
/* * New score command by Haus */ void do_score( CHAR_DATA * ch, const char *argument ) { AFFECT_DATA *paf; int iLang, x; if( IS_NPC( ch ) ) { do_oldscore( ch, argument ); return; } ch_printf( ch, "\r\n&zScore for %s.\r\n", ch->pcdata->title ); if( get_trust( ch ) != ch->top_level ) ch_printf( ch, "You are trusted at level %d.\r\n", get_trust( ch ) ); send_to_char( "&r----------------------------------------------------------------------------&z\r\n", ch ); ch_printf( ch, "&r|&zRace &r:&W %-3d&z year old %-10.10s Log In&r:&W %-25.24s&r|\r\n", get_age( ch ), capitalize( get_race( ch ) ), ctime( &( ch->logon ) ) ); ch_printf( ch, "&r|&zHitroll &r: &W%-5d &zDamroll&r:&W %-5d &zSaved &r:&W %-25.24s&r|\r\n", GET_HITROLL( ch ), GET_DAMROLL( ch ), ch->save_time ? ctime( &( ch->save_time ) ) : "no" ); ch_printf( ch, "&r|&zGlobal AC &r: &W%-5d &zEvasion&r: &W%-5d &zTime &r: &W%-25.24s&r|\r\n", GET_ARMOR( ch ), GET_EVASION( ch ), ctime( ¤t_time ) ); ch_printf( ch, "&r|&zAlign &r: &W%-5d &zWimpy &r:&W %-3d &r|\r\n", ch->alignment, ch->wimpy ); send_to_char( "&r----------------------------------------------------------------------------&z\r\n", ch ); send_to_char( " &zBarehand Damtypes&r:", ch ); for( x = 0; x < MAX_DAMTYPE; x++ ) if( xIS_SET( ch->damtype, x ) ) ch_printf( ch, " &W%s&r,", d_type[x] ); send_to_char( "\r\n", ch ); ch_printf( ch, " &r&zHit Points&r: &W%d&z of&W %d &z Move&r: &W%d&z of&W %d &z Force&r:&W %d&z of&W %d&z\r\n", ch->hit, ch->max_hit, ch->move, ch->max_move, ch->mana, ch->max_mana ); ch_printf( ch, " &zStr&r: &W%2d &zDex&r:&W %2d &zCon&r: &W%2d &zAgi&r:&W %2d &z Int&r:&W %2d &zWis&r:&W %2d&z Cha&r: &w%2d&z\r\n", get_curr_str( ch ), get_curr_dex( ch ), get_curr_con( ch ), get_curr_agi( ch ), get_curr_int( ch ), get_curr_wis( ch ), get_curr_cha( ch ) ); send_to_char( "&r----------------------------------------------------------------------------&z\r\n", ch ); { int ability; for( ability = 0; ability < MAX_ABILITY; ability++ ) { if( ch->skill_level[ability] < 1 ) continue; ch_printf( ch, " &W%-15s &zLevel&r: &W%-3d &zMax&r: &W%-3d &zExp&r: &W%-10ld &zNext&r: &W%-10ld&z\r\n", ability_name[ability], ch->skill_level[ability], max_level( ch, ability ), ch->experience[ability], exp_level( ch->skill_level[ability] + 1 ) ); if( ability == COMBAT_ABILITY ) { for( x = 0; x < MAX_DISCIPLINE; x++ ) if( ch->known_disciplines[x] != NULL ) ch_printf( ch, " - %s%s&g\r\n", is_discipline_set( ch, ch->known_disciplines[x] ) ? "&z" : "&W", ch->known_disciplines[x]->name ); } } } send_to_char( "&r----------------------------------------------------------------------------\r\n", ch ); send_to_char( "&r|&zDamage &zType &r| &zPenetrate &r| &zResist &r| &zPotency &r|\r\n", ch ); send_to_char( "&r----------------------------------------------------------------------------\r\n", ch ); for( x = 0; x < MAX_DAMTYPE; x++ ) ch_printf( ch, "&r|%-19.19s&r: &W%3d &r| &W%3d &r| &W%3d &r|\r\n", d_type_score[x], ch->penetration[x], ch->resistance[x], ch->damtype_potency[x] ); send_to_char( "&r----------------------------------------------------------------------------&z\r\n", ch ); ch_printf( ch, "&zCREDITS&r:&W %-10d &zBANK&r: &W%-10d &zPkills&r: &W%-5.5d &zMkills&r:&W %-5.5d\r\n", ch->gold, ch->pcdata->bank, ch->pcdata->pkills, ch->pcdata->mkills ); ch_printf( ch, "&zWeight&r: &W%5.5d &r(&zmax&W %7.7d&r)&z Items&r: &W%5.5d &r(&zmax&W %5.5d&r)\r\n", ch->carry_weight, can_carry_w( ch ), ch->carry_number, can_carry_n( ch ) ); ch_printf( ch, "&zPager&r: &r(&W%c&r)&W %3d &z AutoExit&r(&W%c&r) &z AutoLoot&r(&W%c&r)&z Autosac&r(&W%c&r)\r\n", IS_SET( ch->pcdata->flags, PCFLAG_PAGERON ) ? 'X' : ' ', ch->pcdata->pagerlen, IS_SET( ch->act, PLR_AUTOEXIT ) ? 'X' : ' ', IS_SET( ch->act, PLR_AUTOLOOT ) ? 'X' : ' ', IS_SET( ch->act, PLR_AUTOSAC ) ? 'X' : ' ' ); send_to_char( "\r\n&zLanguages&r: ", ch ); for( iLang = 0; lang_array[iLang] != LANG_UNKNOWN; iLang++ ) if( knows_language( ch, lang_array[iLang], ch ) || ( IS_NPC( ch ) && ch->speaks == 0 ) ) { if( lang_array[iLang] & ch->speaking || ( IS_NPC( ch ) && !ch->speaking ) ) set_char_color( AT_RED, ch ); send_to_char( lang_names[iLang], ch ); send_to_char( " ", ch ); set_char_color( AT_SCORE, ch ); } send_to_char( "\r\n", ch ); ch_printf( ch, "&zWANTED ON&r: &W%s\r\n", flag_string( ch->pcdata->wanted_flags, planet_flags ) ); if( ch->pcdata->bestowments && ch->pcdata->bestowments[0] != '\0' ) ch_printf( ch, "&zYou are bestowed with the command&r(&zs&r):&W %s.\r\n", ch->pcdata->bestowments ); if( ch->pcdata->clan ) { send_to_char( "&r----------------------------------------------------------------------------\r\n", ch ); ch_printf( ch, "&zORGANIZATION&r:&W %-35s &zPkills&r/&zDeaths&r: &W%3.3d&r/&W%3.3d", ch->pcdata->clan->name, ch->pcdata->clan->pkills, ch->pcdata->clan->pdeaths ); send_to_char( "\r\n", ch ); } if( IS_IMMORTAL( ch ) ) { send_to_char( "&r----------------------------------------------------------------------------&z\r\n", ch ); ch_printf( ch, "IMMORTAL DATA: Wizinvis [%s] Wizlevel (%d)\r\n", IS_SET( ch->act, PLR_WIZINVIS ) ? "X" : " ", ch->pcdata->wizinvis ); ch_printf( ch, "Bamfin: %s\r\n", ( ch->pcdata->bamfin[0] != '\0' ) ? ch->pcdata->bamfin : "%s appears in a swirling mist.", ch->name ); ch_printf( ch, "Bamfout: %s\r\n", ( ch->pcdata->bamfout[0] != '\0' ) ? ch->pcdata->bamfout : "%s leaves in a swirling mist.", ch->name ); /* * Area Loaded info - Scryn 8/11 */ if( ch->pcdata->area ) { ch_printf( ch, "Vnums: Room (%-5.5d - %-5.5d) Object (%-5.5d - %-5.5d) Mob (%-5.5d - %-5.5d)\r\n", ch->pcdata->area->low_r_vnum, ch->pcdata->area->hi_r_vnum, ch->pcdata->area->low_o_vnum, ch->pcdata->area->hi_o_vnum, ch->pcdata->area->low_m_vnum, ch->pcdata->area->hi_m_vnum ); ch_printf( ch, "Area Loaded [%s]\r\n", ( IS_SET( ch->pcdata->area->status, AREA_LOADED ) ) ? "yes" : "no" ); } } if( ch->first_affect ) { int i; const char *skname; i = 0; send_to_char( "&r----------------------------------------------------------------------------&z\r\n", ch ); send_to_char( "&zAFFECT DATA&r:\r\n", ch ); for( paf = ch->first_affect; paf; paf = paf->next ) { skname = paf->from; if( paf->modifier == 0 ) ch_printf( ch, "&r[&W%-63.64s&r;&W%5d &zrds&r]", skname, (int)paf->duration ); else if( paf->modifier > 999 ) ch_printf( ch, "&r[&W%-54.55s&r; &W%7.7s&r;&W%5d &zrds&r]", skname, tiny_affect_loc_name( paf->location ), (int)paf->duration ); else ch_printf( ch, "&r[&W%-51.52s&r;&W%+-3.3d %7.7s&r;%5d &zrds&r]", skname, paf->modifier, tiny_affect_loc_name( paf->location ), (int)paf->duration ); if( i == 0 ) i = 1; if( ( ++i % 1 ) == 0 ) send_to_char( "\r\n", ch ); } } send_to_char( "\r\n&w", ch ); return; }