… | |
… | |
1330 | [0.74, 0.65, 0.41], |
1330 | [0.74, 0.65, 0.41], |
1331 | ); |
1331 | ); |
1332 | |
1332 | |
1333 | my $time = sprintf "%02d:%02d:%02d", (localtime time)[2,1,0]; |
1333 | my $time = sprintf "%02d:%02d:%02d", (localtime time)[2,1,0]; |
1334 | |
1334 | |
1335 | $text =~ s/&/&/g; $text =~ s/</</g; |
1335 | $text = CFClient::UI::Label::escape $text; |
1336 | $text =~ s/\[b\](.*?)\[\/b\]/<b>\1<\/b>/g; |
1336 | $text =~ s/\[b\](.*?)\[\/b\]/<b>\1<\/b>/g; |
1337 | $text =~ s/\[color=(.*?)\](.*?)\[\/color\]/<span foreground='\1'>\2<\/span>/g; |
1337 | $text =~ s/\[color=(.*?)\](.*?)\[\/color\]/<span foreground='\1'>\2<\/span>/g; |
1338 | |
1338 | |
1339 | $LOGVIEW->add_paragraph ($color[$color], |
1339 | $LOGVIEW->add_paragraph ($color[$color], |
1340 | join "\n", map "$time $_", split /\n/, $text); |
1340 | join "\n", map "$time $_", split /\n/, $text); |
… | |
… | |
1367 | } |
1367 | } |
1368 | |
1368 | |
1369 | sub conn::addme_success { |
1369 | sub conn::addme_success { |
1370 | my ($self) = @_; |
1370 | my ($self) = @_; |
1371 | |
1371 | |
|
|
1372 | $MAPWIDGET->clr_commands; |
|
|
1373 | |
1372 | for my $skill (values %{$self->{skill_info}}) { |
1374 | for my $skill (values %{$self->{skill_info}}) { |
1373 | $MAPWIDGET->add_command ("ready_skill $skill", "Ready the skill '$skill'"); |
1375 | $MAPWIDGET->add_command ("ready_skill $skill", "Ready the skill '$skill'"); |
1374 | $MAPWIDGET->add_command ("use_skill $skill", "Immediately use the skill '$skill'"); |
1376 | $MAPWIDGET->add_command ("use_skill $skill", "Immediately use the skill '$skill'"); |
1375 | } |
1377 | } |
1376 | |
1378 | |
1377 | $MAPWIDGET->add_command ("pet\\_mode defend", "Tell pets to stay close to you and defend you"); |
1379 | $MAPWIDGET->add_command ("petmode defend", "Tell pets to stay close to you and defend you"); |
1378 | $MAPWIDGET->add_command ("pet\\_mode arena", "Same as petmode attack, but also attack other players"); |
1380 | $MAPWIDGET->add_command ("petmode arena", "Same as petmode sad, but also attack other players"); |
1379 | $MAPWIDGET->add_command ("pet\\_mode sad", "Search & Destroy - tell pets to roam about and attack enemies"); |
1381 | $MAPWIDGET->add_command ("petmode sad", "Search & Destroy - tell pets to roam about and attack enemies"); |
1380 | $MAPWIDGET->add_command ("kill\\_pets", "kill your pets"); |
1382 | $MAPWIDGET->add_command ("killpets", "Kill your pets"); |
|
|
1383 | $MAPWIDGET->add_command ("chat", "chat TEXT\nChat with all other players"); |
|
|
1384 | $MAPWIDGET->add_command ("shout", "shout TEXT\nShout loudly, used for emergencies"); |
|
|
1385 | $MAPWIDGET->add_command ("tell", "tell USERNAME TEXT\nPrivately tell a specific player"); |
|
|
1386 | |
|
|
1387 | # TODO: add documentation on these |
|
|
1388 | for (qw( |
|
|
1389 | afk |
|
|
1390 | apply |
|
|
1391 | body |
|
|
1392 | bowmode |
|
|
1393 | brace |
|
|
1394 | build |
|
|
1395 | disarm |
|
|
1396 | dm |
|
|
1397 | dmhide |
|
|
1398 | drop |
|
|
1399 | dropall |
|
|
1400 | examine |
|
|
1401 | get |
|
|
1402 | gsay |
|
|
1403 | help |
|
|
1404 | hiscore |
|
|
1405 | inventory |
|
|
1406 | invoke |
|
|
1407 | killpets |
|
|
1408 | listen |
|
|
1409 | logs |
|
|
1410 | mapinfo |
|
|
1411 | maps |
|
|
1412 | mark |
|
|
1413 | motd |
|
|
1414 | output-count |
|
|
1415 | output-sync |
|
|
1416 | party |
|
|
1417 | peaceful |
|
|
1418 | petmode |
|
|
1419 | pickup |
|
|
1420 | players |
|
|
1421 | prepare |
|
|
1422 | quests |
|
|
1423 | rename |
|
|
1424 | resistances |
|
|
1425 | rotateshoottype |
|
|
1426 | save |
|
|
1427 | say |
|
|
1428 | search |
|
|
1429 | search-items |
|
|
1430 | showpets |
|
|
1431 | skills |
|
|
1432 | sound |
|
|
1433 | take |
|
|
1434 | throw |
|
|
1435 | time |
|
|
1436 | title |
|
|
1437 | usekeys |
|
|
1438 | version |
|
|
1439 | weather |
|
|
1440 | whereabouts |
|
|
1441 | whereami |
|
|
1442 | who |
|
|
1443 | wimpy |
|
|
1444 | )) { |
|
|
1445 | $MAPWIDGET->add_command ($_, "$_: no help available (yet)"); |
|
|
1446 | } |
|
|
1447 | |
|
|
1448 | #TODO: add " and ' "aliases" etc. |
1381 | } |
1449 | } |
1382 | |
1450 | |
1383 | sub conn::eof { |
1451 | sub conn::eof { |
|
|
1452 | $MAPWIDGET->clr_commands; |
|
|
1453 | |
1384 | stop_game; |
1454 | stop_game; |
1385 | } |
1455 | } |
1386 | |
1456 | |
1387 | sub update_floorbox { |
1457 | sub update_floorbox { |
1388 | $CFClient::UI::ROOT->on_refresh ($FLOORBOX => sub { |
1458 | $CFClient::UI::ROOT->on_refresh ($FLOORBOX => sub { |
… | |
… | |
1570 | $FONT_FIXED = new_from_file CFClient::Font $fonts[1]; |
1640 | $FONT_FIXED = new_from_file CFClient::Font $fonts[1]; |
1571 | |
1641 | |
1572 | $FONT_PROP->make_default; |
1642 | $FONT_PROP->make_default; |
1573 | } |
1643 | } |
1574 | |
1644 | |
|
|
1645 | # compare mono (ft) vs. rgba (cairo) |
|
|
1646 | # ft - 1.8s, cairo 3s, even in alpha-only mode |
|
|
1647 | # for my $rgba (0..1) { |
|
|
1648 | # my $t1 = Time::HiRes::time; |
|
|
1649 | # for (1..1000) { |
|
|
1650 | # my $layout = CFClient::Layout->new ($rgba); |
|
|
1651 | # $layout->set_text ("hallo" x 100); |
|
|
1652 | # $layout->render; |
|
|
1653 | # } |
|
|
1654 | # my $t2 = Time::HiRes::time; |
|
|
1655 | # warn $t2-$t1; |
|
|
1656 | # } |
|
|
1657 | |
1575 | video_init; |
1658 | video_init; |
1576 | audio_init; |
1659 | audio_init; |
1577 | } |
1660 | } |
1578 | |
1661 | |
1579 | Event::loop; |
1662 | Event::loop; |