Skip to content

Commit

Permalink
[game,inventory] Add weapon loading
Browse files Browse the repository at this point in the history
  • Loading branch information
Dmytro Lysai authored and pingw33n committed Jul 6, 2020
1 parent c53c41d commit 6206de8
Show file tree
Hide file tree
Showing 14 changed files with 424 additions and 158 deletions.
14 changes: 7 additions & 7 deletions src/asset/frame/id/consts.rs
Original file line number Diff line number Diff line change
Expand Up @@ -192,10 +192,10 @@ impl FrameId {
pub const SEXOFF: FrameId = FrameId::Generic(Generic(0x6000_0bc));
pub const SEXON: FrameId = FrameId::Generic(Generic(0x6000_0bd));
pub const SLIDER: FrameId = FrameId::Generic(Generic(0x6000_0be));
pub const SNEGOFF: FrameId = FrameId::Generic(Generic(0x6000_0bf));
pub const SNEGON: FrameId = FrameId::Generic(Generic(0x6000_0c0));
pub const SPLSOFF: FrameId = FrameId::Generic(Generic(0x6000_0c1));
pub const SPLSON: FrameId = FrameId::Generic(Generic(0x6000_0c2));
pub const BUTTON_MINUS_UP: FrameId = FrameId::Generic(Generic(0x6000_0bf));
pub const BUTTON_MINUS_DOWN: FrameId = FrameId::Generic(Generic(0x6000_0c0));
pub const BUTTON_PLUS_UP: FrameId = FrameId::Generic(Generic(0x6000_0c1));
pub const BUTTON_PLUS_DOWN: FrameId = FrameId::Generic(Generic(0x6000_0c2));
pub const STNEGOFF: FrameId = FrameId::Generic(Generic(0x6000_0c3));
pub const STNEGON: FrameId = FrameId::Generic(Generic(0x6000_0c4));
pub const STPLSOFF: FrameId = FrameId::Generic(Generic(0x6000_0c5));
Expand Down Expand Up @@ -306,10 +306,10 @@ impl FrameId {
pub const UNLOADN: FrameId = FrameId::Generic(Generic(0x6000_12e));
pub const SKILLH: FrameId = FrameId::Generic(Generic(0x6000_12f));
pub const SKILLN: FrameId = FrameId::Generic(Generic(0x6000_130));
pub const MOVEMULT: FrameId = FrameId::Generic(Generic(0x6000_131));
pub const INVENTORY_MOVE_MULTIPLE_WINDOW: FrameId = FrameId::Generic(Generic(0x6000_131));
pub const TIMER: FrameId = FrameId::Generic(Generic(0x6000_132));
pub const ALLBON: FrameId = FrameId::Generic(Generic(0x6000_133));
pub const ALLBOFF: FrameId = FrameId::Generic(Generic(0x6000_134));
pub const BUTTON_ALL_UP: FrameId = FrameId::Generic(Generic(0x6000_133));
pub const BUTTON_ALL_DOWN: FrameId = FrameId::Generic(Generic(0x6000_134));
pub const DEATH: FrameId = FrameId::Generic(Generic(0x6000_135));
pub const WATCH: FrameId = FrameId::Generic(Generic(0x6000_136));
pub const SEQ2AD: FrameId = FrameId::Generic(Generic(0x6000_137));
Expand Down
4 changes: 2 additions & 2 deletions src/asset/proto.rs
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,7 @@ pub struct Weapon {
// Number of bullets per burst shot.
pub burst_bullet_count: i32,
// proto.msg:300
pub caliber: i32,
pub caliber: u32,
pub ammo_proto_id: Option<ProtoId>,
/// Magazine capacity.
pub max_ammo_count: u32,
Expand All @@ -279,7 +279,7 @@ pub struct Weapon {

#[derive(Debug)]
pub struct Ammo {
pub caliber: i32,
pub caliber: u32,
pub max_ammo_count: u32,
pub ac_modifier: i32,
pub dr_modifier: i32,
Expand Down
4 changes: 2 additions & 2 deletions src/asset/proto/db.rs
Original file line number Diff line number Diff line change
Expand Up @@ -345,7 +345,7 @@ impl ProtoDb {
let crit_failure_table = rd.read_i32::<BigEndian>()?;
let perk = read_opt_enum(rd, "invalid weapon perk")?;
let burst_bullet_count = rd.read_i32::<BigEndian>()?;
let caliber = rd.read_i32::<BigEndian>()?;
let caliber = rd.read_u32::<BigEndian>()?;
let ammo_proto_id = ProtoId::read_opt(rd)?;
let max_ammo_count = rd.read_i32::<BigEndian>()?.try_into().unwrap();
let sound_id = rd.read_u8()?;
Expand All @@ -370,7 +370,7 @@ impl ProtoDb {
}

fn read_ammo(rd: &mut impl Read) -> io::Result<Ammo> {
let caliber = rd.read_i32::<BigEndian>()?;
let caliber = rd.read_u32::<BigEndian>()?;
let max_ammo_count = rd.read_i32::<BigEndian>()?.try_into().unwrap();
let ac_modifier = rd.read_i32::<BigEndian>()?;
let dr_modifier = rd.read_i32::<BigEndian>()?;
Expand Down
54 changes: 1 addition & 53 deletions src/asset/proto/id.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,59 +5,6 @@ use std::io::{self, Error, ErrorKind, prelude::*};

use crate::asset::EntityKind;

/* PID_ROCK = 0x13,
PID_SMALL_ENERGY_CELL = 0x26,
PID_MICRO_FUSION_CELL = 0x27,
PID_STIMPAK = 0x28,
PID_BOTTLE_CAPS = 0x29,
PID_FIRST_AID_KIT = 0x2F,
PID_ANTIDOTE = 0x31,
PID_DYNAMITE = 0x33,
PID_GEIGER_COUNTER = 0x34,
PID_MENTATS = 0x35,
PID_STEALTH_BOY = 0x36,
PID_WATER_CHIP = 0x37,
PID_HOLODISK = 0x3A,
PID_MOTION_SENSOR = 0x3B,
PID_MUTATED_FRUIT = 0x47,
PID_BIG_BOOK_OF_SCIENCE = 0x49,
PID_DEANS_ELECTRONICS = 0x4C,
PID_FLARE = 0x4F,
PID_FIRST_AID_BOOK = 0x50,
PID_PLASTIC_EXPLOSIVES = 0x55,
PID_SCOUT_HANDBOOK = 0x56,
PID_BUFFOUT = 0x57,
PID_DOCTORS_BAG = 0x5B,
PID_PUMP_PARTS = 0x62,
PID_GUNS_AND_BULLETS = 0x66,
PID_NUKA_COLA = 0x6A,
PID_RAD_X = 0x6D,
PID_PSYCHO = 0x6E,
PID_SUPER_STIMPAK = 0x90,
PID_ACTIVE_FLARE = 0xCD,
PID_ACTIVE_DYNAMITE = 0xCE,
PID_ACTIVE_GEIGER_COUNTER = 0xCF,
PID_ACTIVE_MOTION_SENSOR = 0xD0,
PID_ACTIVE_PLASTIC_EXPLOSIVE = 0xD1,
PID_ACTIVE_STEALTH_BOY = 0xD2,
PID_TECHNICAL_MANUAL = 0xE4,
PID_CHEMISTRY_MANUAL = 0xED,
PID_JET = 0x103,
PID_JET_ANTIDOTE = 0x104,
PID_GECK = 0x16E,
PID_CAR_TRUNK = 0x1C7,
PID_JESSE_CONTAINER = 0x1D3,
PID_DUDE = 0x1000000,
PID_DRIVABLE_CAR = 0x20003F1,
PID_NULL = 0xFFFFFFFF,
PID_HARDENED_POWER_ARMOR = 0xE8,
PID_ADVANCED_POWER_ARMOR = 0x15C,
PID_ADVANCED_POWER_ARMOR_MK2 = 0x15D,
PID_POWER_ARMOR = 0x3,
PID_MIRRORED_SHADES = 0x1B1,
PID_SCROLL_BLOCKER = 0x500000C,*/

#[derive(Clone, Copy, Eq, Hash, PartialEq, Ord, PartialOrd)]
pub struct ProtoId(u32);

Expand All @@ -78,6 +25,7 @@ impl ProtoId {
pub const ACTIVE_PLASTIC_EXPLOSIVE: Self = unsafe { Self::from_packed_unchecked(0xD1) };
pub const SCROLL_BLOCKER: Self = unsafe { Self::from_packed_unchecked(0x0500000c) };
pub const BOTTLE_CAPS: Self = unsafe { Self::from_packed_unchecked(0x29) };
pub const SOLAR_SCORCHER: Self = unsafe { Self::from_packed_unchecked(390) };

pub fn new(kind: EntityKind, id: u32) -> Option<Self> {
if id <= 0xffffff {
Expand Down
Loading

0 comments on commit 6206de8

Please sign in to comment.