use crate::prelude::*;
use crate::wad::build::builder::DataBuilder;
use crate::wad::elem::texture_page_item::TexturePageItem;
use crate::wad::reference::GMRef;
impl DataBuilder<'_> {
pub fn write_resource_id<T>(&mut self, resource: GMRef<T>) {
self.write_i32(resource.index);
}
pub fn write_gm_string(&mut self, string_ref: GMRef<String>) -> Result<()> {
if string_ref.is_some() {
let elem: &String = self.gm_data.strings.by_ref(string_ref)?;
self.write_pointer(elem);
} else {
self.write_i32(0);
}
Ok(())
}
pub fn write_gm_texture(&mut self, gm_texture_ref: GMRef<TexturePageItem>) -> Result<()> {
if gm_texture_ref.is_some() {
let elem: &TexturePageItem = self.gm_data.texture_page_items.by_ref(gm_texture_ref)?;
self.write_pointer(elem);
} else {
self.write_i32(0);
}
Ok(())
}
}