# Miscellaneous Contributions

**URL:** <https://discourse.cataclysmdda.org/t/miscellaneous-contributions/201>\
**Category:** The Lab\
**Created:** [February 9, 2013, 4:55pm UTC](https://discourse.cataclysmdda.org/t/miscellaneous-contributions/201 "2013-02-09T16:55:42Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Aodh](https://avatars.discourse-cdn.com/v4/letter/a/e68b1a/32.png) [@Aodh](https://discourse.cataclysmdda.org/u/Aodh)\
**Post date:** [February 9, 2013, 4:55pm UTC](https://discourse.cataclysmdda.org/t/miscellaneous-contributions/201/1 "2013-02-09T16:55:42Z")

</div>

So, here I was, digging through my old Cataclysm source files, looking for something I worth porting over or sharing, when I stumbled upon a couple of unfinished projects with some merit to them. Namely, vehicles.

Given that there isn’t enough stuff to bother making a thread for, I decided I might just as well start a thread for such inconsequential things.

What I found was twofold - hardened and armored vehicle parts for my never-to-be-seriously-started MilSpecTech mod, and a couple of vehicles to go with it.  
So, here it is.

```auto

    // name
    VEHICLE ("electrocycle");
    // o
    // ^
    // #
    // o

    // dx, dy, part_id
    PART (0, 0, vp_frame_v2);
    PART (0, 0, vp_seat);
    PART (0, 0, vp_controls);
    PART (0, 0, vp_engine_motor);
    PART (1, 0, vp_frame_handle);
    PART (1, 0, vp_fuel_tank_batt);
    PART (2, 0, vp_wheel);
    PART (-1, 0, vp_wheel);
    PART (-1, 0, vp_cargo_box);

    // name
    VEHICLE ("electromobile");
    // o--o
    // |""|
    // +##+
    // +##+
    // |HH|
    // o++o

    // dx, dy, part_id
    PART (0, 0, vp_frame_v2);
    PART (0, 0, vp_seat);
    PART (0, 0, vp_seatbelt);
    PART (0, 0, vp_controls);
    PART (0, 0, vp_roof);
    PART (0, 1, vp_frame_v2);
    PART (0, 1, vp_seat);
    PART (0, 1, vp_seatbelt);
    PART (0, 1, vp_roof);
    PART (0, -1, vp_door);
    PART (0, 2, vp_door);
    PART (-1, 0, vp_frame_v2);
    PART (-1, 0, vp_seat);
    PART (-1, 0, vp_seatbelt);
    PART (-1, 0, vp_roof);
    PART (-1, 1, vp_frame_v2);
    PART (-1, 1, vp_seat);
    PART (-1, 1, vp_seatbelt);
    PART (-1, 1, vp_roof);
    PART (-1, -1, vp_door);
    PART (-1, 2, vp_door);
    PART (1, 0, vp_frame_h);
    PART (1, 0, vp_window);
    PART (1, 1, vp_frame_h);
    PART (1, 1, vp_window);
    PART (1, -1, vp_frame_v);
    PART (1, 2, vp_frame_v);
    PART (2, 0, vp_frame_h);
    PART (2, 0, vp_engine_motor_large);
    PART (2, 0, vp_superalloy_plate);
    PART (2, 1, vp_frame_h);
    PART (2, 1, vp_superalloy_plate);
    PART (2, -1, vp_wheel);
    PART (2, 2, vp_wheel);
    PART (-2, 0, vp_frame_v);
    PART (-2, 0, vp_cargo_trunk);
    PART (-2, 0, vp_roof);
    PART (-2, 0, vp_fuel_tank_batt);
    PART (-2, 0, vp_muffler);
    PART (-2, 1, vp_frame_v);
    PART (-2, 1, vp_cargo_trunk);
    PART (-2, 1, vp_roof);
    PART (-2, 1, vp_fuel_tank_batt);
    PART (-2, -1, vp_board_v);
    PART (-2, -1, vp_fuel_tank_batt);
    PART (-2, -1, vp_solar_panel);
    PART (-2, 2, vp_board_v);
    PART (-2, 2, vp_fuel_tank_batt);
    PART (-2, 2, vp_solar_panel);
    PART (-3, -1, vp_wheel);
    PART (-3, 0, vp_door);
    PART (-3, 1, vp_door);
    PART (-3, 2, vp_wheel);

    // name
    VEHICLE ("armored car");  
    // o--o
    // |""|
    // +##+
    // |##|
    // +##+
    // |""|
    // o--o

    // dx, dy, part_id
    //Driver's Seat
    PART (0, 0, vp_frame_ar_v2);
    PART (0, 0, vp_seat_ar);
    PART (0, 0, vp_seatbelt);
    PART (0, 0, vp_controls_ar);
    PART (0, 0, vp_roof_ar);
    //Shotgun
    PART (0, 1, vp_frame_ar_v2);
    PART (0, 1, vp_seat_ar);
    PART (0, 1, vp_seatbelt);
    PART (0, 1, vp_roof_ar);
    //Doors
    PART (0, -1, vp_door_ar);
    PART (0, 2, vp_door_ar);
    
    //Passenger Compartment
    
    PART (-1, 0, vp_frame_ar_v2);
    PART (-1, 0, vp_seat_ar);
    PART (-1, 0, vp_seatbelt);
    PART (-1, 0, vp_roof_ar);
    PART (-1, 1, vp_frame_ar_v2);
    PART (-1, 1, vp_seat_ar);
    PART (-1, 1, vp_seatbelt);
    PART (-1, 1, vp_roof_ar);
    
    PART (-1, -1, vp_board_ar_v);
    PART (-1, 2, vp_board_ar_v);

    PART (-2, 0, vp_frame_ar_v2);
    PART (-2, 0, vp_seat_ar);
    PART (-2, 0, vp_seatbelt);
    PART (-2, 0, vp_roof_ar);
    PART (-2, 1, vp_frame_ar_v2);
    PART (-2, 1, vp_seat_ar);
    PART (-2, 1, vp_seatbelt);
    PART (-2, 1, vp_roof_ar);
    
    PART (-2, -1, vp_door_ar);
    PART (-2, 2, vp_door_ar);    
 
    //Windshields, Trunk and Engine Compartment 
    
    PART (1, 0, vp_frame_ar_h);
    PART (1, 0, vp_window_ar);
    PART (1, 1, vp_frame_ar_h);
    PART (1, 1, vp_window_ar);
    PART (1, -1, vp_board_ar_v);
    PART (1, 2, vp_board_ar_v);    

    PART (-3, 0, vp_frame_ar_h);
    PART (-3, 0, vp_window_ar);
    PART (-3, 1, vp_frame_ar_h);
    PART (-3, 1, vp_window_ar);
    PART (-3, -1, vp_board_ar_v);
    PART (-3, 2, vp_board_ar_v);    

    PART (-4, 0, vp_board_ar_h);
    PART (-4, 0, vp_muffler_el);
    PART (-4, 0, vp_fuel_tank_gas_ar);
    PART (-4, 1, vp_board_ar_h);
    PART (-4, 1, vp_fuel_tank_gas_ar);
    PART (-4, -1, vp_wheel_ar);
    PART (-4, 2, vp_wheel_ar);
    
    PART (2, 0, vp_frame_ar_h);
    PART (2, 0, vp_engine_gas_large);
    PART (2, 1, vp_frame_ar_h);
    PART (2, -1, vp_wheel_ar);
    PART (2, 2, vp_wheel_ar);

    // name
    VEHICLE ("armored electromobile");  
    // o--o
    // |""|
    // +##+
    // |##|
    // +##+
    // |""|
    // o--o

    // dx, dy, part_id
    //Driver's Seat
    PART (0, 0, vp_frame_ar_v2);
    PART (0, 0, vp_seat_ar);
    PART (0, 0, vp_seatbelt);
    PART (0, 0, vp_controls_ar);
    PART (0, 0, vp_roof_ar);
    //Shotgun
    PART (0, 1, vp_frame_ar_v2);
    PART (0, 1, vp_seat_ar);
    PART (0, 1, vp_seatbelt);
    PART (0, 1, vp_roof_ar);
    //Doors
    PART (0, -1, vp_door_ar);
    PART (0, 2, vp_door_ar);
    
    //Passenger Compartment
    
    PART (-1, 0, vp_frame_ar_v2);
    PART (-1, 0, vp_seat_ar);
    PART (-1, 0, vp_seatbelt);
    PART (-1, 0, vp_roof_ar);
    PART (-1, 1, vp_frame_ar_v2);
    PART (-1, 1, vp_seat_ar);
    PART (-1, 1, vp_seatbelt);
    PART (-1, 1, vp_roof_ar);
    
    PART (-1, -1, vp_board_ar_v);
    PART (-1, -1, vp_solar_paint);
    PART (-1, 2, vp_board_ar_v);
    PART (-1, 2, vp_solar_paint);

    PART (-2, 0, vp_frame_ar_v2);
    PART (-2, 0, vp_seat_ar);
    PART (-2, 0, vp_seatbelt);
    PART (-2, 0, vp_roof_ar);
    PART (-2, 1, vp_frame_ar_v2);
    PART (-2, 1, vp_seat_ar);
    PART (-2, 1, vp_seatbelt);
    PART (-2, 1, vp_roof_ar);
    
    PART (-2, -1, vp_door_ar);
    PART (-2, 2, vp_door_ar);    
 
    //Windshields, Trunk and Engine Compartment 
    
    PART (1, 0, vp_frame_ar_h);
    PART (1, 0, vp_window_ar);
    PART (1, 1, vp_frame_ar_h);
    PART (1, 1, vp_window_ar);
    PART (1, -1, vp_board_ar_v);
    PART (1, -1, vp_fuel_tank_batt_ar);
    PART (1, 2, vp_board_ar_v); 
    PART (1, 2, vp_fuel_tank_batt_ar);   

    PART (-3, 0, vp_frame_ar_h);
    PART (-3, 0, vp_window_ar);
    PART (-3, 1, vp_frame_ar_h);
    PART (-3, 1, vp_window_ar);
    PART (-3, -1, vp_board_ar_v);
    PART (-3, -1, vp_solar_paint);
    PART (-3, 2, vp_board_ar_v);
    PART (-3, 2, vp_solar_paint);    

    PART (-4, 0, vp_board_ar_h);
    PART (-4, 0, vp_muffler_el);
    PART (-4, 0, vp_solar_paint);
    PART (-4, 0, vp_fuel_tank_batt_ar);
    PART (-4, 1, vp_board_ar_h);
    PART (-4, 1, vp_fuel_tank_plut_ar);
    PART (-4, 1, vp_solar_paint);
    PART (-4, -1, vp_wheel_ar);
    PART (-4, 2, vp_wheel_ar);
    
    PART (2, 0, vp_frame_ar_h);
    PART (2, 0, vp_engine_motor_large);
    PART (2, 1, vp_frame_ar_h);
    PART (2, 1, vp_engine_motor_large);
    PART (2, -1, vp_wheel_ar);
    PART (2, 2, vp_wheel_ar);
```

That makes for two electricity-powered variants on default vehicles, and two… things only a millionaire could be proud of, that may very well be capable of substituting for APCs.

In case you wonder what the ‘\_ar’ stands for, it’s “armored”, which, as far as I remember, mostly means only that the durability was increased about five-to-tenfold.

Also, some parts, like tank plating, hardened reactors or turbine engines, are included even though they aren’t used for anything right now.

Originally, I wanted to diversify these things after some more conscientious souls made the “military base overhaul”, which, alas, still seems to be the music of far future.

A word of warning: I haven’t tested the new files yet. There shouldn’t be any problems, given that it’s basically just a copy-paste of something that worked before without issue, but it’s possible there’s a mistake or another that I missed.

Originally, I wanted to include both of the source files as simple attachments, but there are some errors with that I can’t be bothered to work around. So, I guess I’ll start my stay on this forum by double or triple-posting.

Edit: Did some playtesting, made some adjustments to the vehicles. Mostly swapping minireactors for storage batteries.

---

<div class="post-metadata">

**Author:** ![Aodh](https://avatars.discourse-cdn.com/v4/letter/a/e68b1a/32.png) [@Aodh](https://discourse.cataclysmdda.org/u/Aodh)\
**Post date:** [February 9, 2013, 5:02pm UTC](https://discourse.cataclysmdda.org/t/miscellaneous-contributions/201/2 "2013-02-09T17:02:10Z")

</div>

```auto
enum vpart_id
{
    vp_null = 0,

// external parts
    vp_seat,
    vp_bed,
    vp_frame_h,
    vp_frame_v,
    vp_frame_c,
    vp_frame_y,
    vp_frame_u,
    vp_frame_n,
    vp_frame_b,
    vp_frame_h2,
    vp_frame_v2,
    vp_frame_cover,
    vp_frame_handle,
    vp_board_h,
    vp_board_v,
    vp_board_y,
    vp_board_u,
    vp_board_n,
    vp_board_b,
    vp_roof,
    vp_door,
    vp_door_o,
    vp_door_i,
    vp_window,
    vp_blade_h,
    vp_blade_v,
    vp_spike_h,
    vp_spike_v = vp_spike_h,
    vp_wheel_large,
    vp_wheel,

    vp_engine_gas_tiny,
    vp_engine_gas_small,
    vp_engine_gas_med,
    vp_engine_gas_large,
    vp_engine_motor,
    vp_engine_motor_large,
    vp_engine_plasma,
    vp_engine_foot_crank,
    vp_fuel_tank_gas,
    vp_fuel_tank_batt,
    vp_fuel_tank_plut,
    vp_fuel_tank_hydrogen,
    vp_cargo_trunk, // over
    vp_cargo_box, // over

// pure internal parts
    vp_controls,
    vp_muffler,
    vp_seatbelt,
    vp_solar_panel,
    vp_m249,
    vp_flamethrower,
    vp_plasmagun,

// plating -- special case. mounted as internal, work as first line
// of defence and gives color to external part
    vp_steel_plate,
    vp_superalloy_plate,
    vp_spiked_plate,
    vp_hard_plate,

    vp_head_light,

//Armored Parts
    vp_seat_ar,
    vp_frame_ar_h,
    vp_frame_ar_v,
    vp_frame_ar_c,
    vp_frame_ar_y,
    vp_frame_ar_u,
    vp_frame_ar_n,
    vp_frame_ar_b,
    vp_frame_ar_h2,
    vp_frame_ar_v2,
    vp_frame_ar_cover,
    vp_board_ar_h,
    vp_board_ar_v,
    vp_board_ar_y,
    vp_board_ar_u,
    vp_board_ar_n,
    vp_board_ar_b,
    vp_roof_ar,
    vp_door_ar,
    vp_window_ar,
    vp_wheel_ar_large,
    vp_wheel_ar,

    vp_engine_gas_turb,
    vp_engine_motor_turb,
    vp_fuel_tank_gas_ar,
    vp_fuel_tank_batt_ar,
    vp_fuel_tank_plut_ar,
    vp_fuel_tank_hydrogen_ar,
    vp_cargo_trunk_ar, // over    
    
    vp_controls_ar,
    vp_solar_paint,
    vp_muffler_el,

    vp_tank_plate,
//Armored stuff ends   

    num_vparts
};
```

Just copy&replace.  
The next segment goes from the “headlight” part up to the EOF.

```auto
      
// Armored Frames
    { "hardened seat", '#', c_red, '*', c_red, 60, 1500, 0, 0, itm_seat, 6,
        mfb(vpf_over) | mfb(vpf_seat) | mfb(vpf_no_reinforce) },
    { "hardened frame", 'h', c_ltgray, '#', c_ltgray, 100, 4000, 0, 0, itm_frame, 6,
        mfb(vpf_external) | mfb(vpf_mount_point) | mfb (vpf_mount_inner) },
    { "hardened frame", 'j', c_ltgray, '#', c_ltgray, 100, 4000, 0, 0, itm_frame, 6,
        mfb(vpf_external) | mfb(vpf_mount_point) | mfb (vpf_mount_inner) },
    { "hardened frame", 'c', c_ltgray, '#', c_ltgray, 100, 4000, 0, 0, itm_frame, 6,
        mfb(vpf_external) | mfb(vpf_mount_point) | mfb (vpf_mount_inner) },
    { "hardened frame", 'y', c_ltgray, '#', c_ltgray, 100, 4000, 0, 0, itm_frame, 6,
        mfb(vpf_external) | mfb(vpf_mount_point) | mfb (vpf_mount_inner) },
    { "hardened frame", 'u', c_ltgray, '#', c_ltgray, 100, 4000, 0, 0, itm_frame, 6,
        mfb(vpf_external) | mfb(vpf_mount_point) | mfb (vpf_mount_inner) },
    { "hardened frame", 'n', c_ltgray, '#', c_ltgray, 100, 4000, 0, 0, itm_frame, 6,
        mfb(vpf_external) | mfb(vpf_mount_point) | mfb (vpf_mount_inner) },
    { "hardened frame", 'b', c_ltgray, '#', c_ltgray, 100, 4000, 0, 0, itm_frame, 6,
        mfb(vpf_external) | mfb(vpf_mount_point) | mfb (vpf_mount_inner) },
    { "hardened frame", '=', c_ltgray, '#', c_ltgray, 100, 4000, 0, 0, itm_frame, 6,
        mfb(vpf_external) | mfb(vpf_mount_point) | mfb (vpf_mount_inner) },
    { "hardened frame", 'H', c_ltgray, '#', c_ltgray, 100, 4000, 0, 0, itm_frame, 6,
        mfb(vpf_external) | mfb(vpf_mount_point) | mfb (vpf_mount_inner) },
    { "hardened frame", '^', c_ltgray, '#', c_ltgray, 100, 4000, 0, 0, itm_frame, 6,
        mfb(vpf_external) | mfb(vpf_mount_point) | mfb (vpf_mount_inner) },
    { "hardened board", 'h', c_ltgray, '#', c_ltgray, 100, 8000, 0, 0, itm_alloy_plate, 6,
        mfb(vpf_external) | mfb(vpf_mount_point) | mfb (vpf_mount_inner) | mfb(vpf_opaque) | mfb(vpf_obstacle) },
    { "hardened board", 'j', c_ltgray, '#', c_ltgray, 100, 8000, 0, 0, itm_alloy_plate, 6,
        mfb(vpf_external) | mfb(vpf_mount_point) | mfb (vpf_mount_inner) | mfb(vpf_opaque) | mfb(vpf_obstacle) },
    { "hardened board", 'y', c_ltgray, '#', c_ltgray, 100, 8000, 0, 0, itm_alloy_plate, 6,
        mfb(vpf_external) | mfb(vpf_mount_point) | mfb (vpf_mount_inner) | mfb(vpf_opaque) | mfb(vpf_obstacle) },
    { "hardened board", 'u', c_ltgray, '#', c_ltgray, 100, 8000, 0, 0, itm_alloy_plate, 6,
        mfb(vpf_external) | mfb(vpf_mount_point) | mfb (vpf_mount_inner) | mfb(vpf_opaque) | mfb(vpf_obstacle) },
    { "hardened board", 'n', c_ltgray, '#', c_ltgray, 100, 8000, 0, 0, itm_alloy_plate, 6,
        mfb(vpf_external) | mfb(vpf_mount_point) | mfb (vpf_mount_inner) | mfb(vpf_opaque) | mfb(vpf_obstacle) },
    { "hardened board", 'b', c_ltgray, '#', c_ltgray, 100, 8000, 0, 0, itm_alloy_plate, 6,
        mfb(vpf_external) | mfb(vpf_mount_point) | mfb (vpf_mount_inner) | mfb(vpf_opaque) | mfb(vpf_obstacle) },
//Other Armored External Parts
    { "armored roof", '#', c_ltgray, '#', c_dkgray, 100, 8000, 0, 0, itm_alloy_plate, 5,
        mfb(vpf_internal) | mfb(vpf_roof) },   
    { "armored door", '+', c_cyan, '&', c_cyan, 80, 8000, 0, 0, itm_alloy_plate, 5,
        mfb(vpf_external) | mfb(vpf_obstacle) | mfb(vpf_openable) | mfb(vpf_opaque) },
    { "armaplas windshield", '"', c_ltcyan, '0', c_ltgray, 70, 8000, 0, 0, itm_alloy_plate, 5,
        mfb(vpf_over) | mfb(vpf_obstacle) | mfb(vpf_no_reinforce) },
//Armored Wheels
    { "armored large wheel",'0', c_dkgray, 'x', c_ltgray, 50, 3000, 30, 0, itm_big_wheel, 6,
        mfb(vpf_external) | mfb (vpf_mount_over) | mfb(vpf_wheel) | mfb(vpf_mount_point) },
    { "armored wheel", 'o', c_dkgray, 'x', c_ltgray, 50, 2000, 10, 0, itm_wheel, 5,
        mfb(vpf_external) | mfb (vpf_mount_over) | mfb(vpf_wheel) | mfb(vpf_mount_point) },
//Tank Engines
    { "gas turbine engine", '*', c_ltred, '#', c_red, 80, 4000, 1200, AT_GAS, itm_combustion_large, 8,
        mfb(vpf_internal) | mfb(vpf_engine) },
    { "electric turbine engine", '*', c_yellow, '#', c_red, 80, 4000, 1000, AT_BATT, itm_motor_large, 8,
        mfb(vpf_internal) | mfb(vpf_engine) },
//Armored Fuel Tanks
    { "hardened gasoline tank", 'O', c_ltred, '#', c_red, 80, 2000, 6000, AT_GAS, itm_metal_tank, 5,
        mfb(vpf_internal) | mfb(vpf_fuel_tank) },
    { "hardened battery", 'O', c_yellow, '#', c_red, 80, 3000, 1000, AT_BATT, itm_storage_battery, 6,
        mfb(vpf_internal) | mfb(vpf_fuel_tank) },
    { "hardened reactor", 'O', c_ltgreen, '#', c_red, 80, 8000, 50000, AT_PLUT, itm_minireactor, 9,
        mfb(vpf_internal) | mfb(vpf_fuel_tank) },
    { "hardened hydrogen tank", 'O', c_ltblue, '#', c_red, 80, 3000, 3000, AT_PLASMA, itm_metal_tank, 5,
        mfb(vpf_internal) | mfb(vpf_fuel_tank) },
//Armored Other
    { "hardened trunk", 'H', c_brown, '#', c_brown, 80, 2000, 400, 0, itm_frame, 5,
        mfb(vpf_over) | mfb(vpf_cargo) },
    { "hardened controls", '$', c_ltgray, '$', c_red, 10, 2500, 0, 0, itm_vehicle_controls, 6,
        mfb(vpf_internal) | mfb(vpf_controls) },
    { "solar paint", '#', c_yellow, 'x', c_yellow, 10, 20000, 100, 0, itm_solar_panel, 8,
        mfb(vpf_over) | mfb(vpf_solar_panel) },
    { "military muffler", '/', c_ltgray, '/', c_ltgray, 10, 1000, 1, 0, itm_muffler, 5,
        mfb(vpf_internal) | mfb(vpf_muffler) },
    { "tank plating", ')', c_green, ')', c_green, 100, 50000, 0, 0, itm_alloy_plate, 4,
        mfb(vpf_internal) | mfb(vpf_armor) }
//Armored Stuff Ends
       
};

enum vhtype_id
{
    veh_null = 0,
    veh_custom,

// in-built vehicles
    veh_bicycle,
    veh_motorcycle,
    veh_motorcycle_chassis,
    veh_sandbike,
    veh_sandbike_chassis,
    veh_car,
    veh_car_chassis,
    veh_truck,
    veh_semi, //6L Semitruck. 10 wheels. Sleeper cab.
    veh_trucktrailer, //Just a trailer with 8 wheels.
    veh_wagon, // Dwarf Fortress Wagon
    veh_bug, //Old VW Bug.
    veh_bubblecar, //360 degree view glass circular vehicle. Underpowered plutonium.
    veh_golfcart, //Yamaha golf cart.
    veh_scooter, //Vespa S50 scooter.
    veh_armytruck, //Army M35A2 6L gas and/or hydrogen engine if commented parts uncommented.
    veh_schoolbus, //Standard schoolbus
    veh_electrocycle,
    veh_electromobile,
    veh_vipcar, //armored car
    veh_vipcar_el, //armored electric car

    num_vehicles
};

#endif
```
