sezenspessa

RBR-NGP-SWITCHER

Jan 1st, 2020
701
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.       ******************************************************************
  2.       * File: Rbr-NGP-Switcher
  3.       * Desc: Switches NGP Plugins and .ini`s for Richard Burns Rally.
  4.       * Author: Sezen
  5.       * Date: 10/16/2019
  6.       * Version: 1.0
  7.       ******************************************************************
  8.        IDENTIFICATION DIVISION.
  9.        PROGRAM-ID. RBR-NGP-SWITCHER.
  10.        ENVIRONMENT DIVISION.
  11.        INPUT-OUTPUT SECTION.
  12.        DATA DIVISION.
  13.        FILE SECTION.
  14.        WORKING-STORAGE SECTION.
  15.        01   VERSION            PIC 9.
  16.        01   RBR-DIR-IN         PIC X(60).
  17.        PROCEDURE DIVISION.
  18.        MAIN-PROCEDURE.
  19.             CALL 'DIR-CHECK' USING RBR-DIR-IN.
  20.             CALL 'READ-VER' USING VERSION,RBR-DIR-IN.
  21.             CALL 'COPY-FILES' USING VERSION,RBR-DIR-IN.
  22.        STOP RUN.
  23.        EXIT PROGRAM.
  24.       *
  25.        IDENTIFICATION DIVISION.
  26.        PROGRAM-ID. DIR-CHECK.
  27.        ENVIRONMENT DIVISION.
  28.        INPUT-OUTPUT SECTION.
  29.        FILE-CONTROL.
  30.            SELECT IN-DIR ASSIGN "DIR.TXT"
  31.            ORGANIZATION IS LINE SEQUENTIAL.
  32.        DATA DIVISION.
  33.        FILE SECTION.
  34.        FD   IN-DIR.
  35.        01   IN-DIR-LINE   PIC X(32).
  36.        WORKING-STORAGE SECTION.
  37.        01   FILE-DETAILS.
  38.             03 FD-FILESIZE     PIC X(8) COMP-X.
  39.             03 FD-DATE.
  40.                 05 FD-FILL     PIC X(2) COMP-X.
  41.                 05 FD-YEAR     PIC X(2) COMP-X.
  42.                 05 FD-FILLER   PIC x(20)    COMP-X.
  43.        01   FILE-NAME          PIC X(80).
  44.        01   DIR-NAME           PIC X(60).
  45.        LINKAGE SECTION.
  46.        01   RBR-DIR-OUT PIC X(60).
  47.        PROCEDURE DIVISION USING RBR-DIR-OUT.
  48.             DISPLAY 'CHECKING DIR.TXT...'
  49.             CALL 'CBL_CHECK_FILE_EXIST' USING 'DIR.TXT',FILE-DETAILS.
  50.             IF RETURN-CODE = 0 THEN
  51.                 OPEN INPUT IN-DIR
  52.                 READ IN-DIR
  53.                 MOVE IN-DIR-LINE TO RBR-DIR-OUT
  54.                 CLOSE IN-DIR
  55.                 MOVE 'RICHARDBURNSRALLY.EXE' TO FILE-NAME
  56.                 STRING RBR-DIR-OUT DELIMITED BY '  ',FILE-NAME INTO
  57.                                                                DIR-NAME
  58.                 CALL 'CBL_CHECK_FILE_EXIST' USING DIR-NAME,FILE-DETAILS
  59.                 IF RETURN-CODE NOT = 0 THEN
  60.                     DISPLAY 'YOU ENTERED THE WRONG DIRECTORY... :/'
  61.                     DISPLAY 'TRY ENTERING IT AGAIN.'
  62.                     DISPLAY 'IF YOU ARE 100% SURE ITS GOOD, REPORT IT.'
  63.                     STOP RUN
  64.                 END-IF
  65.                 EXIT PROGRAM
  66.             END-IF.
  67.             DISPLAY 'NO DIR.TXT!'
  68.             DISPLAY 'NOW WE WILL CHECK DIRS...'
  69.             MOVE 'C:\GAMES\RICHARD BURNS RALLY\RICHARDBURNSRALLY.EXE'
  70.                                                         TO FILE-NAME.
  71.             DISPLAY 'CALLING TO CHECK ' FILE-NAME.
  72.             CALL 'CBL_CHECK_FILE_EXIST' USING FILE-NAME, FILE-DETAILS.
  73.             IF RETURN-CODE = 0
  74.                 THEN
  75.                    DISPLAY 'EXISTS AT ' FILE-NAME
  76.                    MOVE 'C:\GAMES\RICHARD BURNS RALLY\ ' TO DIR-NAME
  77.                    CALL 'WRITE-OUT' USING 'DIR.TXT', DIR-NAME
  78.                    MOVE DIR-NAME TO RBR-DIR-OUT
  79.                    EXIT PROGRAM
  80.             END-IF.
  81.             DISPLAY 'WASNT THERE.'
  82.             MOVE 'C:\PROGRAM FILES\RICHARD BURNS RALLY\RICHARD
  83.      -         'BURNSRALLY.EXE' TO FILE-NAME.
  84.            CALL 'CBL_CHECK_FILE_EXIST' USING FILE-NAME, FILE-DETAILS.
  85.            IF RETURN-CODE = 0
  86.                THEN
  87.                   MOVE 'C:\PROGRAM FILES\EIDOS\RICHARD BURNS RALLY' TO
  88.                                                              DIR-NAME
  89.                   CALL 'WRITE-OUT' USING 'DIR.TXT',DIR-NAME
  90.                   MOVE DIR-NAME TO RBR-DIR-OUT
  91.                   EXIT PROGRAM
  92.            END-IF.
  93.            DISPLAY 'PLEASE ENTER THE DIRECTORY RBR IS LOCATED IN
  94.       -                                                'WITH ENDING \\ '
  95.             ACCEPT DIR-NAME.
  96.             CALL 'WRITE-OUT' USING 'DIR.TXT',DIR-NAME.
  97.             MOVE DIR-NAME TO RBR-DIR-OUT.
  98.             DISPLAY 'DONE! '
  99.             CALL 'MAIN'.
  100.        STOP RUN.
  101.        EXIT PROGRAM.
  102.        END PROGRAM DIR-CHECK.
  103.       *
  104.        IDENTIFICATION DIVISION.
  105.        PROGRAM-ID. WRITE-OUT IS COMMON.
  106.        ENVIRONMENT DIVISION.
  107.        INPUT-OUTPUT SECTION.
  108.        FILE-CONTROL.
  109.             SELECT OUT-FILE ASSIGN TO LS-FILE-NAME
  110.             ORGANIZATION IS LINE SEQUENTIAL.
  111.        DATA DIVISION.
  112.        FILE SECTION.
  113.        FD   OUT-FILE.
  114.        01   OUT-FILE-LINE  PIC X(256).
  115.        LINKAGE SECTION.
  116.        01   LS-FILE-NAME    PIC X(25).
  117.        01   LS-DIR-NAME     PIC X(60).
  118.        PROCEDURE DIVISION USING LS-FILE-NAME, LS-DIR-NAME.
  119.             DISPLAY 'WRITING...'
  120.             CALL "CBL_CREATE_FILE" USING LS-FILE-NAME,3,3,0,0.
  121.             OPEN OUTPUT OUT-FILE.
  122.             WRITE OUT-FILE-LINE FROM LS-DIR-NAME.
  123.             CLOSE OUT-FILE.
  124.        EXIT PROGRAM.
  125.        END PROGRAM WRITE-OUT.
  126.       *
  127.        IDENTIFICATION DIVISION.
  128.        PROGRAM-ID. READ-VER.
  129.        DATA DIVISION.
  130.        WORKING-STORAGE SECTION.
  131.        01  FILE-SIZE PIC X(8) COMP-X.
  132.        LINKAGE SECTION.
  133.        01   LS-VERSION PIC 9.
  134.        01   RBR-DIR    PIC X(60).
  135.        PROCEDURE DIVISION USING LS-VERSION,RBR-DIR.
  136.             CALL 'CHECK-VER' USING FILE-SIZE,RBR-DIR.
  137.             DISPLAY 'FILE SIZE: ' FILE-SIZE.
  138.             IF FILE-SIZE = 778240 THEN
  139.                 DISPLAY '_____________________________'
  140.                 DISPLAY 'YOU ARE CURRENTLY ON... NGP5!'
  141.                 DISPLAY '-----------------------------'
  142.                 MOVE 5 TO LS-VERSION
  143.             ELSE
  144.                 DISPLAY '_____________________________'
  145.                 DISPLAY 'YOU ARE CURRENTLY ON... NGP6!'
  146.                 DISPLAY '-----------------------------'
  147.                 MOVE 6 TO LS-VERSION
  148.             END-IF.
  149.        EXIT PROGRAM.
  150.        END PROGRAM READ-VER.
  151.       *
  152.        IDENTIFICATION DIVISION.
  153.        PROGRAM-ID. CHECK-VER IS COMMON.
  154.        DATA DIVISION.
  155.        WORKING-STORAGE SECTION.
  156.        01   TEMP-DIR PIC X(60).
  157.        01   WS-VERSION PIC X(5).
  158.        01   WS-FILE-DETAILS.
  159.             03 WS-FD-FILESIZE     PIC X(8) COMP-X.
  160.             03 WS-FD-DATE.
  161.                 05 WS-FD-FILL     PIC X(2) COMP-X.
  162.                 05 WS-FD-YEAR     PIC X(2) COMP-X.
  163.                 05 WS-FD-FILLER   PIC X(50)    COMP-X.
  164.        LINKAGE SECTION.
  165.        01   LS-FILE-SIZE PIC X(8) COMP-X.
  166.        01   RBR-DIR   PIC X(60).
  167.        PROCEDURE DIVISION USING LS-FILE-SIZE,RBR-DIR.
  168.             STRING RBR-DIR,'PLUGINS\PhysicsNG.dll' DELIMITED BY '  '
  169.                    INTO TEMP-DIR.
  170.             DISPLAY 'DISPLAYING...'
  171.             display TEMP-DIR.
  172.             CALL 'CBL_CHECK_FILE_EXIST' USING TEMP-DIR, WS-FILE-DETAILS.
  173.             MOVE WS-FD-FILESIZE TO LS-FILE-SIZE.
  174.        EXIT PROGRAM.
  175.        END PROGRAM CHECK-VER.
  176.       *
  177.        IDENTIFICATION DIVISION.
  178.        PROGRAM-ID. COPY-FILES.
  179.        DATA DIVISION.
  180.        WORKING-STORAGE SECTION.
  181.        01   VERSION-STR PIC X(5).
  182.        01   FILE-NAME   PIC X(15).
  183.        01   TEMP        PIC X(60).
  184.        01   RBR-T       PIC X(88).
  185.        LINKAGE SECTION.
  186.        01   VERSION    PIC 9.
  187.        01   RBR-DIR    PIC X(60).
  188.        PROCEDURE DIVISION USING VERSION,RBR-DIR.
  189.             DISPLAY 'OUR RBR DIR IS: ' RBR-DIR.
  190.             IF VERSION = 5 THEN MOVE 'NGP5\ ' TO VERSION-STR
  191.                            ELSE MOVE 'NGP6\ ' TO VERSION-STR
  192.             END-IF.
  193.       *
  194.       *    SAVE 'carListUser.ini' TO NGP FOLDERS.
  195.       *
  196.             CALL 'NGP-STR' USING VERSION-STR,'carListUser.ini ',TEMP.
  197.       *    FILE LENGTH = 15
  198.             CALL 'RBR-STR' USING RBR-DIR,'RBRCIT\carListUser.ini    ',
  199.                                                                 RBR-T.
  200.       *    FILE LENGTH = 26
  201.             DISPLAY 'SAVING carListUser.ini TO ' TEMP.
  202.             CALL 'CBL_COPY_FILE' USING RBR-T,TEMP.
  203.       *
  204.       *    SAVE CARS.INI
  205.       *
  206.             CALL 'NGP-STR' USING VERSION-STR,'Cars.ini        ',TEMP.
  207.             CALL 'RBR-STR' USING RBR-DIR,'Cars\Cars.ini             ',
  208.                                                                 RBR-T
  209.             DISPLAY 'SAVING Cars.ini TO ' TEMP.
  210.             CALL 'CBL_COPY_FILE' USING RBR-T,TEMP.
  211.       *    RESET VERSION NUMBER
  212.       *
  213.             IF VERSION = 5 THEN MOVE 'NGP6\ ' TO VERSION-STR
  214.                            ELSE MOVE 'NGP5\ ' TO VERSION-STR
  215.             END-IF.
  216.       *
  217.       *    REPLACE NEW 'PhysicsNG.dll'
  218.       *
  219.             DISPLAY 'REPLACING PhysicsNG.dll...'
  220.             CALL 'RBR-STR' USING RBR-DIR,'Plugins\PhysicsNG.dll     ',
  221.                                                                 RBR-T.
  222.             CALL 'NGP-STR' USING VERSION-STR,'PhysicsNG.DLL   ',TEMP.
  223.             CALL 'CBL_COPY_FILE' USING
  224.                  TEMP,RBR-T.
  225.       *
  226.       *    REPLACE NEW 'carListUser.ini'
  227.       *
  228.             DISPLAY 'REPLACING carListUser.ini...'
  229.             CALL 'RBR-STR' USING RBR-DIR,'RBRCIT\carListUser.ini    ',
  230.                                                                  RBR-T.
  231.             CALL 'NGP-STR' USING VERSION-STR,'carListUser.ini ',TEMP.
  232.             CALL 'CBL_COPY_FILE' USING TEMP,RBR-T.
  233.       *
  234.       *    REPLACE NEW 'Cars.ini'
  235.       *
  236.             DISPLAY 'REPLACING Cars.ini...'
  237.             CALL 'RBR-STR' USING RBR-DIR,'Cars\Cars.ini             ',
  238.                                                                  RBR-T.
  239.             CALL 'NGP-STR' USING VERSION-STR,'Cars.ini        ',TEMP.
  240.             CALL 'CBL_COPY_FILE' USING TEMP,RBR-T
  241.       *
  242.       *    REPLACE NEW 'carList.ini'
  243.       *
  244.             DISPLAY 'REPLACING carList.ini...'
  245.             CALL 'NGP-STR' USING VERSION-STR,'carList.ini     ',TEMP.
  246.             CALL 'RBR-STR' USING RBR-DIR,'RBRCIT\carlist\carList.ini',
  247.                                                                  RBR-T.
  248.             CALL 'CBL_COPY_FILE' USING
  249.             TEMP,RBR-T.
  250.       *
  251.       *    FINISHING UP...
  252.       *
  253.             DISPLAY 'ALL DONE!'.
  254.             STOP RUN.
  255.        END PROGRAM COPY-FILES.
  256.       *
  257.        IDENTIFICATION DIVISION.
  258.        PROGRAM-ID. NGP-STR IS COMMON.
  259.        DATA DIVISION.
  260.        LINKAGE SECTION.
  261.        01   VERSION-STR PIC X(5).
  262.        01   FILE-STR    PIC X(20).
  263.        01   OUTPUT-STR  PIC X(95).
  264.        PROCEDURE DIVISION USING VERSION-STR,FILE-STR,OUTPUT-STR.
  265.             STRING VERSION-STR,FILE-STR INTO OUTPUT-STR.
  266.        EXIT PROGRAM.
  267.        END PROGRAM NGP-STR.
  268.       *
  269.        IDENTIFICATION DIVISION.
  270.        PROGRAM-ID. RBR-STR IS COMMON.
  271.        DATA DIVISION.
  272.        LINKAGE SECTION.
  273.        01   RBR-DIR     PIC X(60).
  274.        01   FILE-DIR    PIC X(26).
  275.        01   OUT-STR     PIC X(88).
  276.        PROCEDURE DIVISION USING RBR-DIR,FILE-DIR,OUT-STR.
  277.             STRING RBR-DIR DELIMITED BY '  ' FILE-DIR INTO OUT-STR.
  278.             DISPLAY OUT-STR.
  279.        EXIT PROGRAM.
  280.        END PROGRAM RBR-STR.
  281.       *
  282.        END PROGRAM RBR-NGP-SWITCHER.
  283.       *    TO-DO:
  284.       *    UNPACKER
  285.       *    UPDATE CHECK
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×