Advertisement
sezenspessa

RBR-NGP-SWITCHER

Jan 1st, 2020
3,788
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
COBOL 11.00 KB | None | 0 0
  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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement