RS3 Legacy Support

Discussion in 'Executive Blogs' started by Cloud, Jul 16, 2014.

  1. Cloud

    Joined:
    Jul 28, 2013
    Messages:
    2,496
    Likes Received:
    869
    RuneMate will soon be supporting legacy in rs3, and with the support comes everything that's needed to go along with it. There's several design decisions that I'm still unsure about, and I would like your feedback. Much of the code can be reused from the osrs package, however there's enough differences that they're not drop in compatible and thus they will be branched.

    The main 3 classes that need to be included are Magic, Prayer, and potentially Tab.

    These are the decisions I'd like your feedback on
    a) Should the classes share the same name as their OSRS counter-parts? This could make imports confusing and I would rather avoid this. If you think they should change, please drop some suggestions.
    b) Should we bring in a separate Tab class for legacy support or should we make the ActionWindow class handle both? The naming wouldn't be accurate if we made it support both, and it may confuse some scripters, but I feel that separating it may also confuse them.
    c) Where should the method that detects EOC/Legacy be placed?

    TLDR: RuneScape is becoming increasingly fragmented, how should we go about handling this in the API?
     
  2. Arbiter

    Arbiter Mod Automation

    Joined:
    Jul 26, 2013
    Messages:
    2,544
    Likes Received:
    1,061
    #2 Arbiter, Jul 16, 2014
    Last edited by a moderator: Jul 16, 2014
  3. Black Fire

    Joined:
    Dec 13, 2013
    Messages:
    83
    Likes Received:
    7
    a) Make them different. IMO, seasoned scriptwriters would most probably not get confused with regards to imports considering many combine OSRS and RS3 in one script bot , but if we are planning to make the API as new scripter friendly as possible, then different naming is the way to go, e.x LegacyMagic, LegacyPrayer etc etc (probz shitty names but you get the idea)
    b) Seperation in this case would be better than combination imo
    c)Environment cuz its technically an Environment :p
     
  4. Aidden

    Aidden The better executive ;)

    Joined:
    Dec 3, 2013
    Messages:
    3,460
    Likes Received:
    709
    I'm not home right now but pretty much exactly as Black Fire said.
     
  5. dog_

    dog_ 0xCAFEBABE

    Joined:
    Nov 3, 2013
    Messages:
    270
    Likes Received:
    55
    a) not same as osrs
    b) rename ActionWindow to something that works for both if possible
    c) environment
     
  6. Viewer

    Viewer Discretion is advised

    Joined:
    Jan 2, 2014
    Messages:
    305
    Likes Received:
    72
    a) Make names different
    b) I think ActionWindow should handle both
    c) Environment
     
  7. Cloud

    Joined:
    Jul 28, 2013
    Messages:
    2,496
    Likes Received:
    869
    Everyone seems to agree that the legacy mode check should be included in the Environment class, however a good alternative in my opinion would be the GraphicsConfiguration class. Currently the Environment class mostly handles things related to RuneMate's environment, so I'm not entirely sure if placing the legacy check there would be appropriate.
     
  8. Ian C

    Joined:
    Jul 6, 2014
    Messages:
    23
    Likes Received:
    8
    All 3 revisions are analogous. The API needs to represent this. The cheap method of bringing together all of these is just by implementing interfaces with all intersecting methods to give the sense of unification.

    http://en.wikipedia.org/wiki/Data_Warehouse is my recommendation.


    The point of creating an abstract base for your API is to unify your end product. Don't deviate from this design. Redesign your core if you have to, but don't just keep expanding it without having some linking nature.

    In parts where there is no possibility of connecting the separate modules, subclassing them and leaving it at that would be just fine.

    I do favor prepending OS, RS3, and Rev to the ending subclasses tho.
     
  9. Wyn

    Wyn

    Joined:
    Jul 10, 2014
    Messages:
    65
    Likes Received:
    7
    A)Only share if the classes are similar and rename classes if needed.
    B)Rename ActionWindow and support both, they're too similar to split.
    C)Environment.
     
  10. Cloud

    Joined:
    Jul 28, 2013
    Messages:
    2,496
    Likes Received:
    869
    Please suggest a name to rename it too.
     
  11. Cloud

    Joined:
    Jul 28, 2013
    Messages:
    2,496
    Likes Received:
    869
    A shameless bump with some more information.

    My current plan is to rename the Tab class to OldschoolTab, create a LegacyTab class, and create an InterfaceWindows class that unifies all three where applicable. When things can't be easily unified because of design differences, you will have to use the respective classes to do your deeds.

    The one thing I haven't been able to figure out is where to place the isLegacyMode/isLegacy method. I know you guys thought the Environment class was perfect but the Environment class is designed to hold methods related to the client's environment, not the game's. Until either I figure out a decent place or you guys have a good suggestion (even if it's a new class...), I'm not going to include the method anywhere in the API.
     
  12. Aidden

    Aidden The better executive ;)

    Joined:
    Dec 3, 2013
    Messages:
    3,460
    Likes Received:
    709
    Probably a shitty suggestion but what about in the Runescape class?
     
  13. Cloud

    Joined:
    Jul 28, 2013
    Messages:
    2,496
    Likes Received:
    869
    I'm not completely opposed to that but I feel like there's probably a better option.
     

Share This Page

Loading...