Giter Site home page Giter Site logo

mume / mmapper Goto Github PK

View Code? Open in Web Editor NEW
36.0 36.0 26.0 40.86 MB

๐Ÿง™โ€โ™‚๏ธ MMapper is a graphical MUD client for the game MUME (Multi-Users in Middle-earth)

Home Page: https://mume.github.io/MMapper

License: GNU General Public License v2.0

C++ 96.99% C 0.25% CMake 2.55% GLSL 0.22%
mapper mud-client mume

mmapper's People

Contributors

ciltor avatar cosmos72 avatar cuantar avatar dependabot[bot] avatar ethorondil avatar kalev avatar kaspar-metsa avatar lachupe avatar mattias-viklund avatar mdrcode avatar midoc avatar nschimme avatar teoli2003 avatar waba4mume avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mmapper's Issues

Invalid XML and missing data sent to the client when *not* omitting XML

Hello,
I was recently experimenting with running my own mapper on top of the MMapper raw XML mode, in order to benefit from the group manager among other things. I have found a few issues with MMapper's raw mode, mainly because it doesn't appear to be a true XML pass-through of the game's XML.

  1. MMapper's raw output does not include the contents of gratuitous elements. the gratuitous and description tags are there, but the actual room description is missing. The exits element is similarly affected. While the exits line is sent to the client, it is outside of the tags. I suspect it's omitting the exits line sent by mume, and substituting it outside of the tags, even though I have the show emulated exits check box unchecked.
  2. <, >, &, ', and ", should be replaced with the entity references &lt;, &gt;, &amp;, &apos;, and &quot; in all strings, except obviously the beginning and end of tags themselves. Mume's XML output does this, MMapper's raw output does not. This understandably leads to any XML parser that sits on top of the MMapper raw XML connection becoming unstable and data being lost.
  3. When in raw mode, MMapper fails to enclose emulated prompts in tags. This happens for example when the player receives a group tell from the group manager. This coupled with the '>' sign in the prompt not being replaced with '&gt;' meant my XML parser was breaking quite frequently.

Thanks very much.

support for word of recall

Rooms should have flags for word of recall spots (separate for whitie & darkie) and it would also be nice if word-spot-region boundaries were highlighted (edited either via exit flags manually or deduced from room->recall-room mappings).

room light status

Currently, mmapper allows to specify light status for every room:

  1. lit
  2. dark
  3. undefined

But in MUME there are actually at least 4 cases:

  1. direct sun (* in prompt and causes sun-death for trolls and maluses for orcs)
  2. indirect sun (* in prompt, but no sun-death/maluses)
  3. artificial light (! in prompt)
  4. dark (o in prompt)

I suggest adding the new 2 states. Also the direct sun should be rendered somewhat differently than the other light statuses. And finally when playing troll, direct sun light statuses could automatically get mapped from exits such as ^north^ or *north* (both mean that room north has direct sun).

Hinting the location of distant players

It would be nice if MMapper hinted the direction of other connected players via group-manager in case their location is not rendered in currently visible part of the map.
Something like a small line or dot of player's colour would be rendered at border of the rendered map at appropriate position.

Detect and display Sun / Night

In order to display the sun / night cycle we first need to detect MUME time #44.

This feature will also help provide additional context identifying dark/lit rooms #38

This feature could also be paired with an alternative night tileset #9

Wishlist: Possibility to mark unvisited rooms.

Being able to use the "select rooms" function and after that "add to unvisited rooms queue" or similar. This would mark the rooms with some noticeable color filter. As the rooms are entered, they are removed from the queue and returns to being marked as usual.

This would greatly reduce difficulty of tp-ing and finding questmobs and similar.

Release 2.4.x

Please make a compiled 2.4.x release that we can point new players to.

I just noticed that recent versions of my map with updated newbie areas are probably incompatible with the released 2.3.x versions as the file format changed.

Thanks!

Graphics glitch regression in MMapper 2.3.3

Using the "move map" option, the map moves very slowly and locks up responsiveness of application. It seems that it re-draws the entire map for each pixel moved in any direction. This behaviour is not seen with version 2.2.1.

Attachment: Movie uploaded for reference. Note that it is an mkv movie uploaded as gif to trick github file upload permissions.
mmapper233bug

Build QtIOCompressor into MMapper by default (not as a shared library)

Exact same thing when trying to build manually. 2.3.6 works fine.

Crash report
Process:               mmapper [6689]
Path:                  /Applications/mmapper.app/Contents/MacOS/mmapper
Identifier:            mmapper
Version:               2.4.0 (2.4.0)
Code Type:             X86-64 (Native)
Parent Process:        ??? [1]
Responsible:           mmapper [6689]
User ID:               501

Date/Time:             2017-12-30 08:36:18.600 +0200
OS Version:            Mac OS X 10.13.1 (17B48)
Report Version:        12
Bridge OS Version:     3.0 (14Y618b)
Anonymous UUID:        1FB8215B-A374-762F-A670-A857170E9A2C

Sleep/Wake UUID:       75FFDC6C-0E53-49F1-94C8-0744236EBEDF

Time Awake Since Boot: 5100 seconds
Time Since Wake:       1500 seconds

System Integrity Protection: enabled

Crashed Thread:        0

Exception Type:        EXC_CRASH (SIGABRT)
Exception Codes:       0x0000000000000000, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Termination Reason:    DYLD, [0x1] Library missing

Application Specific Information:
dyld: launch, loading dependent libraries

Dyld Error Message:
  Library not loaded: @rpath/libQtSolutions_IOCompressor-2.3.dylib
  Referenced from: /Applications/mmapper.app/Contents/MacOS/mmapper
  Reason: image not found

Binary Images:
       0x10092f000 -        0x100a90ff7 + (2.4.0 - 2.4.0) <F5DF9B0E-7A00-32EF-B71B-835B5B93396A> /Applications/mmapper.app/Contents/MacOS/mmapper
       0x100af7000 -        0x100b21ff3 +org.qt-project.QtXml (5.10 - 5.10.0) <C4B22F2A-CEEF-391E-9319-93E8F0145E49> /Applications/mmapper.app/Contents/Frameworks/QtXml.framework/Versions/5/QtXml
       0x100b38000 -        0x100c3affb +org.qt-project.QtNetwork (5.10 - 5.10.0) <A78A5C69-9F8C-3831-B901-E45900A05BB2> /Applications/mmapper.app/Contents/Frameworks/QtNetwork.framework/Versions/5/QtNetwork
       0x100c84000 -        0x100cb8ffb +org.qt-project.QtOpenGL (5.10 - 5.10.0) <05E86C89-E8B9-3FF2-B536-520F0EACAF2F> /Applications/mmapper.app/Contents/Frameworks/QtOpenGL.framework/Versions/5/QtOpenGL
       0x109e08000 -        0x109e5298f  dyld (519.2.1) <CD85EFBA-B9D6-3FD5-B777-A23B2DDEF192> /usr/lib/dyld

Model: MacBookPro13,2, BootROM MBP132.0233.B00, 2 processors, Intel Core i5, 2,9 GHz, 16 GB, SMC 2.37f20
Graphics: Intel Iris Graphics 550, Intel Iris Graphics 550, Built-In
Memory Module: BANK 0/DIMM0, 8 GB, LPDDR3, 2133 MHz, 0x802C, 0x4D5435324C31473332443450472D30393320
Memory Module: BANK 1/DIMM0, 8 GB, LPDDR3, 2133 MHz, 0x802C, 0x4D5435324C31473332443450472D30393320
AirPort: spairport_wireless_card_type_airport_extreme (0x14E4, 0x157), Broadcom BCM43xx 1.0 (7.77.37.2.1a3)
Bluetooth: Version 6.0.0f1, 3 services, 27 devices, 1 incoming serial ports
Network Service: Wi-Fi, AirPort, en0
USB Device: USB 3.0 Bus
USB Device: iBridge
Thunderbolt Bus: MacBook Pro, Apple Inc., 22.2
Thunderbolt Bus: MacBook Pro, Apple Inc., 22.2

Use gratuitous descs and get rid of _brief

Mappers can now request to receive room descriptions from MUME, regardless of brief/spam character settings, see the G XML option at the bottom of HELP MPI.

This is meant as a user experience improvement: players won't have to fiddle with brief/spam to get a reliable room sync anymore, and you can get rid of that _brief client-side setting.

noflee exits

We should be able to mark no-flee exits in the map and these should be rendered in special way.

MMapper as a Service

@waba4mume has been playing around with the idea of having a web-based mapper in https://github.com/waba4mume/play-mume/tree/mapper. I agree that this seems to be the best way to get additional users but perhaps we should think about it from a service perspective. What if we could do the MUME what Google Maps did to Earth?

I propose that we instead simplify the mapper client to just poll metadata like the current location and surrounding rooms from a MMapper server. This unlocks an possible future bonus of built in Group Manager support, per-character memory of doors, and a centralized map that is updated by a group of core cartographers.

An alternative idea to having a web client is also a mobile native client. However, given how keyboard-centric MUDs are I never truly see tablets or cell phones being truly MUME-capable devices. As such, web is probably still the best way to move forward.

Missed prompts

Displayed prompts after internal commands and when receiving _gt tells are not always the latest prompts.

Unify code style

@nschimme proposed to use the Qt Code Style and I have no real objection (as long as we are consistent :-) ).

I open this issue so that we apply it consistently all over the place (the project is small enough so that we can do it in one go).

Note that the largest difference between the Qt Code Style and the project are braces and ifs.

Display notes in terminal

Add an option to display notes in the terminal in addition to the user interfaces. This should improve accessibility for notes.

Non-black exit colors (for GL_STIPPLE lines) are displayed grey.

This got broken at some point between 2.2.1 and 2.3.6.

Depending of the exit flag, the stipple line should have different colors. In 2.3.6, all are grey.
Strangely, when the room is selected, the right color appear.

Example of an area where the stipple lines are grey instead of a color:
screen shot 2016-12-17 at 18 17 05

If we "select" one of the room, the expected color does appear:
screen shot 2016-12-17 at 18 17 22

Likely something easy, but I wasn't able to find it.

Mapper stopped following in GH

For some reason mapper did not follow to Lhรปn Street, normal named rooms were OK. Started working again when I changed encoding to ASCII. Maybe this รป breaks it?

MacOS High Sierra 10.13.2 (17C88)

Black Background

At one time you made a black background version for me a few years ago. I would love it if this became standard. Hours of playing becomes hard on the eyes, and the black background works so well!!! Or implement a way to make the background any color you want.

MUME Time

Add mume time from file like {hour, minute, am/pm, day, month, year, epochtimestamp}

temporary exits

We should be able to mark temporary exits in the map (they are common in new zones) and they should be rendered in a special way. Atm I am using "special" flag for them and also flag to tell mapper to ignore it for room matching (I think it's called "no match"), but a new flag would be nice, as "special" is too generic and I also use it for other features (like potentially webbed exits or exits blocked by mobiles or special features).

Add new commands to switch between play/mapping/emulation modes

It would be nice to add new command/commands for switching the mmapper mode:
playing / mapping / emulation

I can imagine e.g.: _play, _map, _emulation or _mode p, _mode m, _mode e, etc.

Purpose is to allow blind players to turn on emulation mode with ease. Atm, they struggle with it.

zone boundaries

It could be useful to see zone boundaries as it can be relevant to game-play sometimes.
E.g. "where" command is zone based and certain zones do not repop while player is in.

It could be implemented as an exit flag.

Store keywords, ambiance comments, exit descriptions, and sloping messages

In the long term, I would like to improve:

  • the search
  • the offline mode that allows to discover an area, or to practice it.

Like the room description, these messages are not useful in what I call the 'fighting' mode, but important to catch the ambiance, or for quests.

I currently store such messages in the room note, but this is not very practical to build new feature on top of it (like improving the offline mode). It is also difficult to know which areas of my map is complete or not.

The current map file schema can't store them, so I plan to add these:

  1. keywords
    E.g.
    *+ CW>l tower
    The five-storey-high tower seems to be of dwarven make. A whiff of smoke
    rises to the sky from a chimney on the roof.

(Yes, there are plenty of hidden gems all over there!)

A map of strings, associated to a room.

[There may be several keywords with the same description, but I don't think it is worth using a more complex structure]

  1. ambiance comments
    E.g. (In Fangorn)
    By a whiff of air, the odour of the decaying vegetation is intensified.

A list of strings, associated to a room. [Several strings for a room]

  1. Exit descriptions
    Quite common, for secrets (found or not found), death traps, and explanation why a direction is blocked. Some areas, just for fun :-)
    E.g.
    *+ CW Move:Tired>l d
    One of the planks looks like it could easily be moved in and out of
    place.

A single string, associated to a room direction (flagged as an exit or not)

  1. Exit 'passing' descriptions
    *+ CW>e
    You struggle to reach the top of the hill. [Fake one, didn't had one handy ;-) ]
    Top of the Hill

A single string, associated to an exit.

I think I will extend the file schema first, and allow to read/set them using a new frame of the room edition dialog.

Once this is done, I plan to extend the offline mode to display them.

@nschimme what do you think?

Introduce fall exit flag

Cyan โ†’ Exit leading into an air-room (where you instantly fall, such as at BBT entrance or Unqalome's Chasm Trail towards-center exits)

More details in #40

Strange font issues on osx

Running the mac release i'm running into garbled font issues and am unable to edit existing info marks.
screen shot 2015-02-02 at 6 53 02 pm

This happens on both the latest release and when I built from source.

Random exits in MUME aren't handled by MMapper elegantly

random exit flag is insufficiently describing MUME's random exits behavior, as in MUME some random exits apply only for leader (cannot split groups) and other apply for each follower individually (can split groups); it would help to know how these are stored in MUME internally

Improve Ainur and <snoop> support

Mw+ gods have the /snoop command which should be supported

<snoop symbol=G>&G XXXXX leans over the corpse, tears it open, and fills his skin with the blood.
</snoop>
<prompt>of W 15019[150:19]></prompt>
<snoop symbol=G>&G XXXXX drinks blood from a water skin.
</snoop>
<prompt>of W 15019[150:19]></prompt>
<snoop symbol=G><say>&G XXXXX says 'XXXXX tells you 'hello world''</say>
</snoop>
<prompt>of W 15019[150:19]></prompt>
<snoop symbol=G><social>&G XXXXX stares at the sky.</social>
</snoop>
<prompt>of W 15019[150:19]></prompt>
<snoop symbol=G><social>&G You fall down laughing.</social>
</snoop>&G >lau

random exits/rooms

Right now, we can only specify that a direction has random behavior. But MUME has 2 separate features relevant to randomness of exits:

  1. random chance you will end up going different dir than you intended
  2. random chance your followers will go different dir than you

Right now we cannot diferentiate these in mmapper.
Question is if the losing of the followers behavior is tied to a room or to individual exits in MUME. All cases I remember apply to all exits in those rooms...

Secret notes

Use case: There is some interesting loot to be found hidden around Arda, for explorers who bother reading the descs. I do not want to make that information public when I export a base (no secrets) map.

Suggested course of action: Add a secret notes field that is not exported by the Export base map feature. The field should be searchable. Or some more complex scheme that would allow encoding that information in room flags & normal notes while still not exporting them.

This can probably be bundled with #29.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.